【问题标题】:KeyError in append dict附加字典中的 KeyError
【发布时间】:2017-08-22 03:03:51
【问题描述】:

我有大量数据,在循环中迭代 true this 并按键附加值:

for q in my_dict:
output.append({"roomsCount": q['roomsCount'], "totalArea": float(q['totalArea']), 
"floorNumber": q['floorNumber'],"price": int(q['bargainTerms']['price']), ...})

有时我得到:KeyError: 'roomsCount'KeyError: 'totalArea' 等,如果密钥不存在。

如果该键不存在,我如何为任何键设置默认值?无需重复尝试:除了我的每个键:值对

【问题讨论】:

  • dict.getdict.setdefault
  • 这可能与您的错误无关,但您的 my_dict 变量似乎被误导了。如果你遍历一个字典,你会得到键。看起来my_dict 是一个字典列表(或某种类似的可迭代对象)。
  • 谢谢,问题已解决

标签: python python-3.x dictionary exception keyerror


【解决方案1】:

如果此键不存在,我如何为任何键设置默认值?

dict.setdefault() 方法可能是您想要的:

d = {'hits': 10, 'gold': 5}
print( d.setdefault('weapons', 0) )
print( d.setdefault('hits', 10) )

【讨论】:

    【解决方案2】:

    通过添加 dict.get 解决,感谢 cmets。我的代码

    for q in mydict:
            output.append(
                {"roomsCount": q.get('roomsCount', 0), "totalArea": float(q.get('totalArea', 0)), "floorNumber": q.get('floorNumber',0),
                 "price": int(q.get('bargainTerms''price',0))...}) 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-21
      • 1970-01-01
      • 2016-12-20
      • 2021-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多