我正在解析一個復雜的 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
提交
取消