如何用空字典替换“None”作为字典值?

我正在解析一个复杂的 json 字符串,并在我的类中使用嵌套字典和一些嵌套 dic.get() 函数。


当更高级别的密钥不存在时,我不想接收 None ,而是想找到一个空字典,以便我的代码(dict.get())继续工作。


现在我想用空字典 {} 替换所有名为 None 的字典值,但我没有找到任何好的解决方案。


所以基本上我想要这个:


{'a': {},

 'b': 'Text',

 'c': 5,

 'd': {'d1': {}}

但遗憾的是:


{'a': None,

 'b': 'Text',

 'c': 5,

 'd': {'d1': None}


手掌心
浏览 118回答 2
2回答

凤凰求蛊

其他解决方案是递归遍历字典并替换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': {}}}

白板的微信

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', {}))输出:{}{}{}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python