gpt4 book ai didi

python - 如何处理for循环中跳过的项目

转载 作者:行者123 更新时间:2023-12-03 08:22:39 25 4
gpt4 key购买 nike

我一直在使用带有瓶颈的Amazon Product API,并且在遍历XML响应时遇到了空类型错误。

我认为我已经设法处理了一半,但是如果遇到此错误,它将不会提取其他信息,因此显示的结果少于实际发生的结果。

有没有办法正确处理此问题,以便提取所有信息并忽略错误?

price_list = [{}]
for i in price_search:
lnp = i.LowestNewPrice.FormattedPrice.text
qty_n = i.TotalNew.text
qty_u = i.TotalUsed.text
int_qty_u = int(qty_u)
if int_qty_u > 0:
lup = i.LowestUsedPrice.FormattedPrice.text
else:
continue
price_list.append({'Lowest New Price': lnp, 'Lowest Used Price': lup, 'Quantity New': qty_n, 'Quantity Used': qty_u})

在这种情况下,它特别是 LowestUsedPrice,如果某项没有此标签,则会引发错误。
我是Python和编码的新手,所以我会竭尽全力...

最佳答案

我相信您的缩进问题很严重。 Python通过缩进定义一个块。
您的if/else结构在for循环之外。这是您可能正在寻找的:

price_list = [{}]
for i in price_search:
lnp = i.LowestNewPrice.FormattedPrice.text
qty_n = i.TotalNew.text
qty_u = i.TotalUsed.text
int_qty_u = int(qty_u)
if int_qty_u > 0:
lup = i.LowestUsedPrice.FormattedPrice.text
else:
continue
price_list.append({'Lowest New Price': lnp, 'Lowest Used Price': lup, 'Quantity New': qty_n, 'Quantity Used': qty_u})

除此之外,请使用try-except子句来处理异常值或大小写,并使程序返回有效状态。例如:
 if int_qty_u > 0:
try:
lup = i.LowestUsedPrice.FormattedPrice.text
except: #we catch any exception that could happend
lup = '<null>' #just to put a string

为了完整起见,我会在所有for块上进行try-except:
price_list = [{}]
for i in price_search:
try:
lnp = i.LowestNewPrice.FormattedPrice.text
qty_n = i.TotalNew.text
qty_u = i.TotalUsed.text
int_qty_u = int(qty_u)
if int_qty_u > 0:
lup = i.LowestUsedPrice.FormattedPrice.text
else:
continue
except:
lnp,qty_n,qty_u,int_qty_u='null','null','null',-1 #multiple assignment in a bad case
price_list.append({'Lowest New Price': lnp, 'Lowest Used Price': lup, 'Quantity New': qty_n, 'Quantity Used': qty_u})

关于python - 如何处理for循环中跳过的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52806083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com