hasattr()抛出AttributeError

时间:2013-08-27 19:50:13

标签: python django

我正在尝试检查django应用程序中的某些xml是否具有某些元素/节点,如果不是仅仅跳过该代码块。我正在使用hasattr()检查元素是否存在,如果元素不存在,则返回false:

if hasattr(product.ItemAttributes, 'ListPrice') \ and hasattr(product.Offers.Offer.OfferListing, 'PercentageSaved') \ and hasattr(product.LargeImage, 'URL'):

除了我的情况,它抛出一个属性错误: AttributeError at /update_products/ no such child: {http://webservices.amazon.com/AWSECommerceService/2011-08-01}LargeImage

我不明白为什么它会抛出错误而不是只返回false并让我跳过代码块?

1 个答案:

答案 0 :(得分:3)

该错误正在抱怨LargeImage。这是由这个表达式引起的:product.LargeImage。您可能想先检查一下,甚至更好,将其放在try/except块中。