我正在与python boto package called mws合作,以便与亚马逊MWS进行接口。但我认为这也是一个普遍的蟒蛇问题,仍然不确定。我使用list_oder_items
方法获取订单的产品项目。
items = conn.list_order_items(AmazonOrderId = order_id)
result = items.ListOrderItemsResult
然后我想保存每个项目。
for item in result.OrderItems.OrderItem:
save_item_to_db(item)
此处item
变量是<class 'boto.mws.response.OrderItem'>
类型,如果您将其打印出来,则会显示以下内容:
OrderItem {}(标题:u'title', GiftWrapPrice:USD 0.00,ConditionNote:u'Brand New&amp;真实 product ....',CODFee:无,ASIN:u'XXXX',OrderItemId: u'XXXX',CODFeeDiscount:无,QuantityShipped:u'1', GiftWrapTax:USD 0.00,ShippingPrice:USD 3.99,QuantityOrdered:u'1', ItemTax:USD 0.00,PromotionIds:[],SellerSKU: u'XXXX',ShippingDiscount:USD 0.00,ShippingTax:USD 0.00,ConditionId:u'New',PromotionDiscount:USD 0.00,ItemPrice:USD 12.81,ConditionSubtypeId:u'New')
为什么我不能迭代像for key in item: print key
这样的键值对?虽然我也试过这个:for key in dict(item): print key
。这也没有印刷任何东西。
我希望有一种更系统的方法来处理item
对象,而不是视觉检查。有可能把它变成普通的python dict吗?
答案 0 :(得分:2)
基本上你得到一个对象,你想迭代该对象的所有字段作为键:值对。
您可以尝试使用object。_dict_
来获取对象的字典表示。
代码示例:
for key in item.__dict__:
print key