2017-03-28 72 views
0

我有数据的大和平,在循环迭代真该和关键追加值:KeyError异常的追加字典

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”等,如果密钥不存在。

如何设置任何键的默认值,以防万一此键不存在?不用重复尝试:除了我的每个键:值对

+2

你可以使用['dict.get(键,DEFAULT_VALUE)'](https://开头WWW。 tutorialspoint.com/python/dictionary_get.htm) – roganjosh

+0

请参阅'dict.get'和'dict.setdefault' – donkopotamus

+1

这可能与您的错误无关,但看起来您的'my_dict'变量具有误导性命名。如果你遍历字典,你会得到密钥。它看起来像'my_dict'是一个字典列表(或一些类似的可迭代的)。 – Blckknght

回答

0

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

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))...}) 
1

How i can set default value for any key in case if this key not exist?

dict.setdefault()方法可能是你想要的这里:

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