我有一个文本文件 abc.txt
:
abc/pqr/lmn/xyz:pass
abc/pqr/lmn/bcd:pass
我需要解析这些语句,输出应该在嵌套字典中,如下所示:
{'abc':{'pqr':{'lmn':{'xyz':{'pass':1},{'bcd':{'pass':1}}}}}}
其中 1 是
'pass'
数数。我可以做这样的事情:
import re
d={}
p=re.compile('[a-zA-z]+')
for line in open('abc.txt'):
for key in p.findall(line):
d['key']={}
最佳答案
查看 setdefault
字典的方法。
d = {}
d.setdefault('pqr', {}).setdefault('lmn', {}).setdefault('xyz', {})['pass'] = 1
d.setdefault('pqr', {}).setdefault('lmn', {}).setdefault('bcd', {})['pass'] = 1
d
给
{'pqr': {'lmn': {'bcd': {'pass': 1}, 'xyz': {'pass': 1}}}}
关于python - 创建计数的动态嵌套字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27560360/