【问题标题】:How to deal with empty dict value如何处理空的dict值
【发布时间】:2015-11-12 04:58:27
【问题描述】:

我有一个字典形式的 json 列表,下面允许我从字典中获取值:

valone = out['red']['blue']['green']

valtwo = out['purple']['yellow']['black']

从那里我可以围绕 valone 或 valtwo 运行一个条件语句,以查看它们是否是黑色的绿色。

现在这很好用,当这些键被填充时,但当它们不是时,我得到了

KeyError: 'black'

这是我可以看到的,因为值为空。

在声明 dict 值之前,我很难弄清楚如何过滤掉。

我看到有人建议

out.get("black", None)

但是我不能访问黑色,因为我是我追求的第三个值?

【问题讨论】:

  • out 的完整值是多少(即print(repr(out)) 的输出)?
  • out['purple']['yellow'].get('black', None) ?

标签: python dictionary keyerror


【解决方案1】:

当您使用多级索引时,最简洁的方法是使用异常来控制流程(这在 Python 中已被广泛接受,但在其他语言中经常不受欢迎)

try:
    valone = out['red']['blue']['green']
except KeyError:
    # Handle Your Exception Here

【讨论】:

  • KeyError 除外:完美 - 非常感谢!到时会接受答复。
【解决方案2】:

你可以使用 try/except 语法:

try:
    valone = out['red']['blue']['green']
except:
    # whatever

【讨论】:

  • 包罗万象的声明并不是最佳实践。在这里,你知道你至少会遇到KeyError,所以应该抓住它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-27
  • 1970-01-01
  • 2017-01-14
  • 1970-01-01
  • 1970-01-01
  • 2023-01-27
  • 2014-09-23
相关资源
最近更新 更多