crasshopper 发表于 2014-12-14 19:07

一个dict 转换的问题

有一个 字符串 :{'33###C###EEEEEEEE': 1, '18###A###FFFFFFFFF': 2, '18###A##EEEEEEEE': 37, '18###D###DDDDDDDDDD': 1, '33###A###DDDDDDDDDD': 1, '7###C###EEEEEEEE': 1}



'33###C###EEEEEEEE' 用### 分割 33是根节点,C是下一级,EEEEEEEE对应的值是1



要生成下面的这种格式:

{'18':{'A':{'EEEEEEEE':37,'FFFFFFFFF':37}, 'D':{'DDDDDDDDDD':1}}}
{'33':{'C':{'EEEEEEEE':1,'FFFFFFFFF':37}, 'A':{'DDDDDDDDDD':1}}}
{'7':{'C':{'EEEEEEEE':1}}}


大侠们帮帮忙。。。

银风冷月 发表于 2014-12-15 14:27

a = {'33###C###EEEEEEEE': 1, '18###A###FFFFFFFFF': 2, '18###A###EEEEEEEE': 37, '18###D###DDDDDDDDDD': 1, '33###A###DDDDDDDDDD': 1, '7###C###EEEEEEEE': 1}
c = {}
for key,val in a.items():
        b = key.split('###')+str(val).split()
        try:
          c]
        except KeyError:
          c] = {}
        try:
          c]]
        except KeyError:
          c]] = {}
        c]]] = b
print c{'33': {'A': {'DDDDDDDDDD': '1'}, 'C': {'EEEEEEEE': '1'}}, '18': {'A': {'EEEEEEEE': '37', 'FFFFFFFFF': '2'}, 'D': {'DDDDDDDDDD': '1'}}, '7': {'C': {'EEEEEEEE': '1'}}}最后我只生成了一个字典,可以自己用items()去分开字典使用
页: [1]
查看完整版本: 一个dict 转换的问题