我需要建立一个基于配置文件的嵌套字典。你知道吗
我有:
Chain1 {
Chain1_value1
Chain1_Chain2 {
Chain1_Chain2_value1
Chain1_Chain2_Chain3 {
Chain1_Chain2_Chain3_value1
Chain1_Chain2_Chain3_value2
Chain1_Chain2_Chain3_value3
}
Chain1_Chain2_Chain4 {
Chain1_Chain2_Chain4_value1
Chain1_Chain2_Chain4_value2
Chain1_Chain2_Chain4_value3
}
}
}
“XXX{”=>;打开名为XXX的块
“XXX}”=>;关闭名为XXX的群
如果没有“{”或“}”=>;则为块的值。你知道吗
我需要这个:
{'Chain1 {': {'Chain1_Chain2 {': {'Chain1_Chain2_Chain3 {': {'Chain1_Chain2_Chain3_value1': '',
'Chain1_Chain2_Chain3_value2': '',
'Chain1_Chain2_Chain3_value3': '',}}
'Chain1_Chain2_Chain4 {': {'Chain1_Chain2_Chain4_value1': '',
'Chain1_Chain2_Chain4_value2': '',
'Chain1_Chain2_Chain4_value3': ''}},
'Chain1_Chain2_value1': ''},
'Chain1_value1': ''}}
但现在我有这个:
{'Chain1 {': {'Chain1_Chain2 {': {'Chain1_Chain2_Chain3 {': {'Chain1_Chain2_Chain3_value1': '',
'Chain1_Chain2_Chain3_value2': '',
'Chain1_Chain2_Chain3_value3': '',
'Chain1_Chain2_Chain4 {': {'Chain1_Chain2_Chain4_value1': '',
'Chain1_Chain2_Chain4_value2': '',
'Chain1_Chain2_Chain4_value3': ''}},
'Chain1_Chain2_value1': ''},
'Chain1_value1': ''}}
我的代码:
import re
import pprint
a = []
a.append("Chain1 {")
a.append(" Chain1_value1")
a.append(" Chain1_Chain2 {")
a.append(" Chain1_Chain2_value1")
a.append(" Chain1_Chain2_Chain3 {")
a.append(" Chain1_Chain2_Chain3_value1")
a.append(" Chain1_Chain2_Chain3_value2")
a.append(" Chain1_Chain2_Chain3_value3")
a.append(" }")
a.append(" Chain1_Chain2_Chain4 {")
a.append(" Chain1_Chain2_Chain4_value1")
a.append(" Chain1_Chain2_Chain4_value2")
a.append(" Chain1_Chain2_Chain4_value3")
a.append(" }")
a.append(" }")
a.append("}")
for l in a:
print l
dict_test = {}
current_dict = dict_test
for line in a:
line = line.strip()
if re.search(r"{$", line):
current_dict[line] = {}
current_dict = current_dict[line]
elif re.search(r'}$', line):
pass
else:
current_dict[line] = ""
pprint.pprint(dict_test)
我想,它错过了一件事:伊莱夫检索(r'}$',行) 但我不知道是什么。你知道吗
你能帮我吗?:)
可以使用
parse
方法创建类:输出:
您没有跟踪dict的历史记录。我添加了上一个dict,并在存在'}'时将dict还原为上一个值。请在下面找到解决方案。希望有帮助。你知道吗
输出
相关问题 更多 >
编程相关推荐