在 python 字典中替换 None

新手上路,请多包涵

我碰巧有一本复杂的字典(有列表,列表中的字典等)。某些键的值设置为 None

有没有办法用我自己的一些默认值替换这个 None 而不管字典的复杂结构?

原文由 MSK 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 893
2 个回答

您可以使用 object_pairs_hook 来自 json 模块:

 def dict_clean(items):
    result = {}
    for key, value in items:
        if value is None:
            value = 'default'
        result[key] = value
    return result

dict_str = json.dumps(my_dict)
my_dict = json.loads(dict_str, object_pairs_hook=dict_clean)

原文由 Eugene Soldatov 发布,翻译遵循 CC BY-SA 3.0 许可协议

# replace_none_with_empty_str_in_dict.py

raw = {'place': 'coffee shop', 'time': 'noon', 'day': None}

def replace_none_with_empty_str(some_dict):
    return { k: ('' if v is None else v) for k, v in some_dict.items() }

print(replace_none_with_empty_str(raw))

原文由 Down the Stream 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题