【问题标题】:Keyerror while using defaultdict使用 defaultdict 时出现键错误
【发布时间】:2020-03-20 14:03:42
【问题描述】:

我正在尝试使用 defaultdict(dict) 解析来自 json 的数据,该数据具有嵌套的“日期”和“值”键。

日期键总是显示对应的值,但如果'value'键上根本没有数据,则完全省略。

这导致我的 defaultdict 出现问题,因为在第一行缺少“value”键但出现在第二行时,它会引发 KeyError: 'value'。

任何想法我可以如何解决这个问题并在那里拥有价值,甚至认为它在第一行丢失。

数据:

{
"metric": "complexity",
   "history": [
       {
        "date": "2019-09-10T15:24:33+0200",
        "value": "54"
       },
       {
        "date": "2019-12-24T11:26:42+0100"
       }

代码:

dates_to_values = defaultdict(dict)
    for metric in metrics['measures']:
        metric_value = metric['metric']
        for hist in metric['history']:
            dates_to_values[hist['date']][metric_value] = hist['value']

【问题讨论】:

  • 能否提供代码示例?
  • @CoryNezin 编辑示例

标签: python json defaultdict


【解决方案1】:

问题不在于defaultdict,而在于hist。如果hist 始终是一个字典,则在其中不总是存在密钥时使用hist.get('value')

【讨论】:

  • 非常感谢!非常简单的修复和明确的答案!
猜你喜欢
  • 1970-01-01
  • 2022-09-22
  • 1970-01-01
  • 2015-03-15
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-18
  • 1970-01-01
相关资源
最近更新 更多