wiliiwin 发表于 2014-11-18 11:29

回复 10# Linux_manne
和perl不一样,perl是可以的,想了下确实不可以,因为这样的话无法知道是数组的数组,还是哈希的哈希,我一直用perl的技巧在python上使用,看来这个需要转变下


   

Buring__ 发表于 2014-11-18 15:09

#!/usr/bin/python
# -*- coding: utf-8 -*-
import re

h=dict()
fd=open('urfile','r')
for line in fd:
    flag=0
    m=re.match('\[(\w+)\]',line)
    if m:
      outer_key=m.group(1)
      h=dict()

    elif flag==0:
      m=re.match('(.*)=(.*)',line)
      if m:
            h=m.group(2)
print h
fd.close()

wiliiwin 发表于 2014-11-18 15:24

回复 12# Buring__
是的 这样是可以的,python不能直接hash[][]的形式来赋值


   

shreychen 发表于 2014-11-19 09:46

问题应该出在这里hash=matchobj.group(2)

for之前 hash = {}
hash[“XXX”]都没有赋值,hash["XXX"]["YYY"]当然会报错了

wiliiwin 发表于 2014-11-19 11:23

回复 14# shreychen

在python是不允许的,但是在perl是可以的,我是按perl的习惯来的。


   

伯牙子期90 发表于 2014-11-19 19:31

字典不存在二维的说法,说以dit1=["A"]={"B":"test"}这样追加才行
页: 1 [2]
查看完整版本: 字典赋值的报错