Python 将嵌套字典转换为文件
我有一个字典,我通过从文件中提取并修改值来修改它,现在我想以类似的格式将它放回一个文件中 字典类似于以下内容:Python 将嵌套字典转换为文件,python,Python,我有一个字典,我通过从文件中提取并修改值来修改它,现在我想以类似的格式将它放回一个文件中 字典类似于以下内容: d={'a': {'c':'something else', 'd':{'e':'some item'} }, 'b': {'z':'something else', 's':{'f':'some item'} } } 这是一个包含嵌套项的很长的字典,我猜我必须使用某种递归 我不知道目前该怎么做,所以我没有现有的代码可以从
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>
c=其他东西
e=某些项目
z=其他东西
f=某个项目
d={'a':
{'c':'something',
'd':{'e':'some item'}
},
“b”:
{'z':'something',
's':{'f':'some item'}
}
}
def打印机(d,t=0):
对于d.项()中的k,v:
如果存在(v,str):
产生'\t'*t+'{}={}'。格式(k,v)
其他:
产生'\t'*t+''。格式(k)
来自打印机的产量(v,t=t+1)
产生'\t'*t+''。格式(k)
s='\n'.加入(打印机(d))
印刷品
印刷品:
<a>
c = something else
<d>
e = some item
</d>
</a>
<b>
z = something else
<s>
f = some item
</s>
</b>
c=其他东西
e=某些项目
z=其他东西
f=某个项目
是否仅存储类型为str
或dict
的值?值是带字符串的嵌套字典。在python 2.7或更早版本的python 3中有没有办法做到这一点?旧版本似乎不支持f'strings'@user1601716更新了我的答案。现在它使用了format()
方法。这样,你会如何在python2.7中实现“从打印机(v,t=t+1)产生”呢?@user1601716我想这就是我要给你的答案。这是一个很好的答案。我在考虑递归路线。真棒
<a>
c = something else
<d>
e = some item
</d>
</a>
<b>
z = something else
<s>
f = some item
</s>
</b>