python - 如果键可能不存在,则从 Python dict 读取

标签 python json

我对 Python 和解析数据非常陌生。

我可以将外部 JSON 提要拉入 Python 字典并迭代字典。

for r in results:
     print r['key_name']

当我浏览返回的结果时,当键没有值时出现错误(记录可能并不总是存在值)。如果我打印结果,它会显示为

'key_name': None, 'next_key':.................

我的代码因错误而中断。如何控制没有值的键?

任何帮助将不胜感激!

布洛克

最佳答案

首选方式(如果适用):

for r in results:
     print r.get('key_name')

如果 key_name 不是字典中的键,这将简单地打印 None。您也可以有不同的默认值,只需将其作为第二个参数传递:

for r in results:
     print r.get('key_name', 'Missing: key_name')

如果你想做一些不同于使用默认值的事情(比如,当键不存在时完全跳过打印),那么你需要更多的结构,即:

for r in results:
    if 'key_name' in r:
        print r['key_name']

for r in results:
    try: print r['key_name']
    except KeyError: pass

第二个可能更快(如果它相当罕见,而不是缺少一个键),但第一个似乎对许多人来说更自然。

关于python - 如果键可能不存在,则从 Python dict 读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2263761/

相关文章:

python - 水文模型的通量和存储图

python - 将 numpy 数组中的元素替换为另一个数组中最接近的值

android - HashMap<String, String> 和其他到 SQLiteDataBase

php - 在php中使用json_encode的Mysql更新查询问题

javascript - 简单的 HTTP GET 无法使用 https 来获取 JSON

java - 使用 Gson 或 Jackson 将 JSON 字符串展平,使包含每个级别键值的键映射到 Map<String, String>

python - 在 Emacs 中设置 Python 项目根目录?

c++ - 重复的 Windows 加密服务提供程序导致 Python w/Pycrypto

python - django-open-id : CSRF verification failed

javascript - 将字符串数组转换为 JSON 属性中的对象数组