在python

时间:2016-11-08 11:04:28

标签: python dictionary

我正在与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吗?

1 个答案:

答案 0 :(得分:2)

基本上你得到一个对象,你想迭代该对象的所有字段作为键:值对。

您可以尝试使用object。_dict_来获取对象的字典表示。

代码示例:

for key in item.__dict__:
    print key