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

Chr*_*ian 1 python json dictionary

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

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

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

所以基本上我想要这个:

{'a': {},
 'b': 'Text',
 'c': 5,
 'd': {'d1': {}}
Run Code Online (Sandbox Code Playgroud)

但遗憾的是:

{'a': None,
 'b': 'Text',
 'c': 5,
 'd': {'d1': None}
Run Code Online (Sandbox Code Playgroud)

And*_*ely 5

其他解决方案是递归遍历字典并替换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)
Run Code Online (Sandbox Code Playgroud)

印刷:

{'a': {}, 'b': 'Text', 'c': 5, 'd': {'d1': {}}}
Run Code Online (Sandbox Code Playgroud)