如何通过python-amazon-product-api的item_lookup函数获取Amazon商品的价格报价列表?
我正在尝试写一个函数,根据ASIN获取一个商品的报价列表(它们的价格):
def price_offers(asin):
from amazonproduct import API, ResultPaginator, AWSError
from config import AWS_KEY, SECRET_KEY
api = API(AWS_KEY, SECRET_KEY, 'de')
str_asin = str(asin)
node = api.item_lookup(id=str_asin, ResponseGroup='Offers', Condition='All', MerchantId='All')
for a in node:
print a.Offer.OfferListing.Price.FormattedPrice
我在阅读这个文档:http://docs.amazonwebservices.com/AWSECommerceService/latest/DG/index.html?ItemLookup.html,并试图让它工作,但它总是显示:
Failure instance: Traceback: <type 'exceptions.AttributeError'>: no such child: {http://webservices.amazon.com/AWSECommerceService/2009-10-01}Offer
2 个回答
6
好的,谢谢。为了回答我自己的问题,给可能有同样困扰的人,正确的做法是:
def price_offers(asin):
from amazonproduct import API, ResultPaginator, AWSError
from config import AWS_KEY, SECRET_KEY
api = API(AWS_KEY, SECRET_KEY, 'de')
str_asin = str(asin)
node = api.item_lookup(id=str_asin, ResponseGroup='Offers', Condition='All', MerchantId='All')
for a in node.Items.Item.Offers.Offer:
print a.OfferListing.Price.FormattedPrice
amazonproduct 是来自于 http://pypi.python.org/pypi/python-amazon-product-api
6
看起来你的回应中没有“Offer”这个元素。你可以试试
node = api.item_lookup(...)
from lxml import etree
print etree.tostring(node, pretty_print=True)
看看返回的XML长什么样子。