【发布时间】:2021-02-03 18:45:31
【问题描述】:
我有一堆要抓取的 URL。某些链接具有其他链接中不存在的值。我想知道如果任何 URL 中都没有值,如何避免出错?
我尝试了try 和except,但没有成功
在这个link 中,您将在examInformation 下看到4 个值。我为 5 个值编写了表达式,它给了我一个错误。如果值不存在,我希望它跳过。
这是我的代码:
try:
location_1 = schools['examInformation'][0]['cbrLocationShortName']
except:
pass
try:
location_2 = schools['examInformation'][1]['cbrLocationShortName']
except:
pass
try:
location_3 = schools['examInformation'][2]['cbrLocationShortName']
except:
pass
try:
location_4 = schools['examInformation'][3]['cbrLocationShortName']
except:
pass
try:
location_5 = schools['examInformation'][4]['cbrLocationShortName']
except:
pass
yield {
"Location 1": location_1 if location_1 else "N/A",
"Location 2": location_2 if location_2 else "N/A",
"Location 3": location_3 if location_3 else "N/A",
"Location 4": location_4 if location_4 else "N/A",
"Location 5": location_5 if location_5 else "N/A",
}
我收到以下错误:
UnboundLocalError:赋值前引用了局部变量“location_5”
注意:我正在使用带有 JSON 库的 scrapy
【问题讨论】:
-
CodeWithAwais 我删除了我的答案,因为我太快假设错误是什么。我建议您使用@Madjazz 循环解决方案,它是比重复更好的设计。
标签: python json web-scraping scrapy