我有一个字典,可以通过从文件中提取并修改值来对其进行修改,现在我想以类似的格式将其放回文件中。
字典与以下内容相似:
d={'a':
{'c':'something else',
'd':{'e':'some item'}
},
'b':
{'z':'something else',
's':{'f':'some item'}
}
}
这是一本非常长的字典,带有嵌套项目,我想我必须使用某种递归
我不确定当前该如何处理,因此我没有现有的代码可以从我所在的位置获取,这是字典到文件的信息。
我试图获得的最终结果如下:换行符和空格:
<a>
c = something else
<d>
e = some item
</d>
</a>
<b>
z = something else
<s>
f = some item
</s>
</b>
答案 0 :(得分:6)
d={'a':
{'c':'something else',
'd':{'e':'some item'}
},
'b':
{'z':'something else',
's':{'f':'some item'}
}
}
def printer(d, t=0):
for k, v in d.items():
if isinstance(v, str):
yield '\t' * t + '{} = {}'.format(k, v)
else:
yield '\t' * t + '<{}>'.format(k)
yield from printer(v, t=t+1)
yield '\t' * t + '</{}>'.format(k)
s = '\n'.join(printer(d))
print(s)
打印:
<a>
c = something else
<d>
e = some item
</d>
</a>
<b>
z = something else
<s>
f = some item
</s>
</b>