如何从boto调用返回XML?

时间:2014-08-26 10:28:18

标签: python xml amazon-web-services boto amazon-mws

我在Python 2.7.6中使用boto 2.32.1。我在使用boto的mws模块的list_orders功能时遇到问题,无法获取我的亚马逊订单的XML数据。

这是我的电话:

response = connection.list_orders(CreatedAfter='2014-08-26T05:53:44+00:00', 
   MarketplaceId=['XXXXXXXXXXXXX'])

以下是response的值(显然删除了个人信息)

ListOrdersResponse{u'xmlns': u'https://mws.amazonservices.com/Orders/2013-09-01'}
(ListOrdersResult: ListOrdersResult{}
(CreatedBefore: u'2014-08-26T10:06:10Z', Orders: ^Orders^{}
(Order: [Order{}(***ORDER INFORMATION***)])), 
ResponseMetadata: ^ResponseMetadata^{}(RequestId: u'xxxxxxxxxx'))

这并不理想,因为我有另一个eBay销售模块,可以使用ebaysdk-python返回的XML。亚马逊的格式与eBay类似,所以如果我能够获得亚马逊返回的XML而不是上面的格式,那就太棒了。

我注意到如果我使用boto.set_stream_logger('boto'),它会打印返回的XML,也许我可以以某种方式利用它?

这就是我想要归还的内容:

<ListOrdersResponse xmlns="https://mws.amazonservices.com/Orders/2013-09-01">
  <ListOrdersResult>
    <Orders>
      <Order>
        ***ORDER INFORMATION***
      </Order>
    </Orders>
    <CreatedBefore>2014-08-26T10:18:59Z</CreatedBefore>
  </ListOrdersResult>
  <ResponseMetadata>
    <RequestId>XXXXXXXXXXXXXXXXXXXXXXXXXXXXX</RequestId>
  </ResponseMetadata>
</ListOrdersResponse>

然后我可以使用Python的xml.etree.ElementTree来解析和处理数据。

1 个答案:

答案 0 :(得分:2)

我认为没有一种官方支持的方法可以做到这一点,但你可以这样做以轻松地恢复原始XML响应:

j = max[k]