我正在解析一个复杂的 json 字符串,并在我的类中使用嵌套字典和一些嵌套 dic.get() 函数。当更高级别的密钥不存在时,我不想接收 None ,而是想找到一个空字典,以便我的代码(dict.get())继续工作。现在我想用空字典 {} 替换所有名为 None 的字典值,但我没有找到任何好的解决方案。所以基本上我想要这个:{'a': {}, 'b': 'Text', 'c': 5, 'd': {'d1': {}}但遗憾的是:{'a': None, 'b': 'Text', 'c': 5, 'd': {'d1': None}
2 回答
凤凰求蛊
TA贡献1825条经验 获得超4个赞
其他解决方案是递归遍历字典并替换None值:
def replace(d):
if isinstance(d, dict):
for k in d:
if d[k] is None:
d[k] = {}
else:
replace(d[k])
elif isinstance(d, list):
for v in d:
replace(v)
d = {'a': None,
'b': 'Text',
'c': 5,
'd': {'d1': None}}
replace(d)
print(d)
印刷:
{'a': {}, 'b': 'Text', 'c': 5, 'd': {'d1': {}}}
白板的微信
TA贡献1883条经验 获得超3个赞
get您可以使用该方法的默认值
dict.get("a", {})
样本:
d = { 'b' : 1,
'c' : { 'd': 2 } }
print (d.get('a', {}))
print (d.get('c', {}).get('a', {}))
print (d.get('x', {}).get('y', {}).get('z', {}))
输出:
{}
{}
{}
添加回答
举报
0/150
提交
取消