有没有更好或更优雅的方法来处理python中的字典循环异常?

有没有更好或更优雅的方法来处理python中的字典循环异常?,python,python-3.x,dictionary,exception,Python,Python 3.x,Dictionary,Exception,基本上,我只是解析一个JSON文件,其中包含关于几部电影的信息,并将其中的一些保存在另一个字典中以供以后使用 例如: 不是所有电影都有描述,我使用try/except来处理json中没有描述时出现的“keyrerror”,有更好的方法吗 用于json格式的电影: #其他条目 尝试: description={“description”:电影详细信息['description']} 除KeyError外: description={“description”:“”} #其他条目 尝试: 其他值={

基本上,我只是解析一个JSON文件,其中包含关于几部电影的信息,并将其中的一些保存在另一个字典中以供以后使用

例如: 不是所有电影都有描述,我使用try/except来处理json中没有描述时出现的“keyrerror”,有更好的方法吗

用于json格式的电影:
#其他条目
尝试:
description={“description”:电影详细信息['description']}
除KeyError外:
description={“description”:“”}
#其他条目
尝试:
其他值={“其他值”:电影详细信息[“其他值”]
除KeyError外:
其他值={“其他值”:“”}
在我看来,这似乎非常“肮脏”,如果你有一些技巧,写一个更干净的代码将是可怕的


谢谢

一种方法是使用带有sentinal值的
.get()

for movie in json:
    description = {'description': movie_details.get('Description', '')}
    # and similarly for other values...
这样可以确保如果找不到键,则使用sentinal值


我不确定是否需要在循环中使用
movie\u details
movie
。我想你是指后者。

一种方法是将
movie\u details
转换为
集合。defaultdict

movie_details = collections.defaultdict(str,movie_details)
如果找不到键,专用字典对象将调用
str
来创建新键(空字符串)

完成此操作后,只需像正常的dict访问一样使用它:

description = {'description': movie_details['Description']}

您可以使用.get,查看
movie\u details
是否是
dict
在访问movie\u details中的
值之前可以询问