解析未知列表对象

时间:2015-03-26 02:49:51

标签: python boto

我正在使用亚马逊的MWS boto API来提取订单,但我在解析结果时遇到了问题。我使用的其他API返回XML数据,但boto没有。在博托,如果你打电话:

boto.set_stream_logger('boto')

它会将XML数据打印到控制台,但我找不到任何返回XML数据的函数,所以我需要处理它们给我的内容。

以下是我如何撤消订单:

orders = mws.list_orders(**params)

这是orders

的类型

<class 'boto.mws.response.ListOrdersResponse'>

这是orders将包含的示例:(格式化是我的,为清晰起见。原来,它没有换行符)

ListOrdersResponse{u'xmlns': u'https://mws.amazonservices.com/Orders/2013-09-01'}

(ListOrdersResult: ListOrdersResult{}

    (CreatedBefore: u'xxxx', Orders: ^Orders^{}

        (Order: [

            Order{}(LatestDeliveryDate: u'xxxx', LatestShipDate: u'xxxx',
            FulfillmentChannel: u'xxxx', ShippingAddress: ^ShippingAddress^{}(City: u'xxxx', 
            Name: u'xxxx', CountryCode: u'xxxx', Phone: u'xxxx', StateOrRegion: u'xxxx', 
            AddressLine1: u'xxxx', PostalCode: u'xxxx'), EarliestDeliveryDate: u'xxxx', 
            PurchaseDate: u'xxxx', ShipmentServiceLevelCategory: u'xxxx', 
            OrderTotal: USD 23.12, AmazonOrderId: u'xxxx', EarliestShipDate: u'xxxx', 
            NumberOfItemsUnshipped: u'xxxx', OrderStatus: u'xxxx', IsBusinessOrder: u'xxxx', 
            OrderType: u'xxxx', PaymentExecutionDetail: None, ShippedByAmazonTFM: u'xxxx', 
            PaymentMethod: u'xxxx', SalesChannel: u'xxxx', LastUpdateDate: u'xxxx', 
            BuyerEmail: u'xxxx', ShipServiceLevel: u'xxxx', BuyerName: u'xxxx', 
            NumberOfItemsShipped: u'xxxx', MarketplaceId: u'xxxx'), 

            # Other orders similar to above

        ])

    ), 

ResponseMetadata: ^ResponseMetadata^{}(RequestId: u'xxxx'))

供参考,boto在github:ListOrdersResult上实现ElementElementList

问题摘要:

  1. 这是一个特定的python结构吗?这似乎是一个与字典交叉的列表。我认为这可能是某种unicode或JSON字典,但我不熟悉python而且还不能告诉你。

  2. 如何使用此数据结构解析大量订单?我想进入每个单独的订单商品,并提取某些字段,例如BuyerName

  3. 我尝试过调用orders.ListOrdersResult.CreatedBefore,它会从xxxx返回值CreatedBefore: u'xxxx'。到目前为止,我还没有进一步发展。调用类似ListOrdersResult.Order或类似内容的内容会抛出AttributeError.

    1. 对于熟悉boto的人,是否有可能以某种方式从此函数boto.set_stream_logger('boto')返回XML数据? Python有许多库可以轻松处理XML数据。
    2. 提前谢谢!关于亚马逊的MWS API的文档非常少,我发现的任何类似问题都是旧的和未回复的。

0 个答案:

没有答案