[英]is there a better or more elegant way to handling dictionary loop exception in python?
基本上我只是解析一个JSON文件,其中包含有关几部电影的信息,并将其中的一些保存在不同的字典中供以后使用
例如:并非所有电影都有描述,我正在使用try / except来处理当json中没有描述时出现的“keyError”,有没有更好的方法呢?
for movie in json:
# other entries
try:
description = {"description": movie_details['Description']}
except KeyError:
description = {"description": ""}
# other entries
try:
other_value = {"other_value": movie_details["other_value"]
except KeyError:
other_value = {"other_value": ""}
这对我来说非常“肮脏”,如果你有一些提示写一个更干净的代码会很棒
谢谢
一种方法是使用带有sentinal值的.get()
:
for movie in json:
description = {'description': movie_details.get('Description', '')}
# and similarly for other values...
这可确保如果未找到密钥,则使用sentinal值。
我不确定你是否需要在循环中使用movie_details
或movie
。 我想你的意思是后者。
一种方法是将movie_details
转换为collections.defaultdict
movie_details = collections.defaultdict(str,movie_details)
如果找不到某个键,专用字典对象会调用str
来创建一个新键(空字符串)
完成此操作后,只需像普通的dict访问一样使用它:
description = {'description': movie_details['Description']}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.