我正在尝试使用python从ebay抓取一些结果,但我遇到了错误:
condition = item['condition'][0]['conditionDisplayName'][0]
>>> KeyError: 'condition'`
这是有问题的代码:
for item in (parseddoc["findItemsByKeywordsResponse"][0] ["searchResult"][0]["item"]):
condition = item['condition'][0]['conditionDisplayName'][0]
print(condition)
我正在尝试寻找一种方法来阻止它得到错误,并仅将其默认设置为预设值( "N/A" for example )
,然后继续循环。实现此目标的最佳方法是什么?谢谢
答案 0 :(得分:3)
使用try
/ except
子句捕获KeyError
:
for item in parseddoc["findItemsByKeywordsResponse"][0]["searchResult"][0]["item"]:
try:
condition = item['condition'][0]['conditionDisplayName'][0]
except KeyError:
condition = 'N/A'
print(condition)
答案 1 :(得分:0)
在循环中添加以下if / else语句:
for item in (parseddoc["findItemsByKeywordsResponse"][0]["searchResult"][0]["item"]):
if 'condition' not in item:
condition = 'N/A'
else:
condition = item['condition'][0]['conditionDisplayName'][0]
print(condition)