Python xml到csv

Python xml到csv,python,xml,csv,Python,Xml,Csv,请在标记副本之前阅读整个问题。 我有一个嵌套的XML文件,我想将其转换为csv文件。 我必须为同样的内容编写一个python脚本 XML文件是: <?xml version="1.0"?> <ListOrdersResponse xmlns="https://mws.amazonservices.com/Orders/2013-09-01"> <ListOrdersResult> <Orders> <Order>

请在标记副本之前阅读整个问题。
我有一个嵌套的XML文件,我想将其转换为csv文件。 我必须为同样的内容编写一个python脚本

XML文件是:

<?xml version="1.0"?>
<ListOrdersResponse xmlns="https://mws.amazonservices.com/Orders/2013-09-01">
  <ListOrdersResult>
    <Orders>
      <Order>
        <LatestShipDate>2015-06-02T18:29:59Z</LatestShipDate>
        <OrderType>StandardOrder</OrderType>
        <PurchaseDate>2015-05-31T03:58:30Z</PurchaseDate>
        <AmazonOrderId>171-6355256-9594715</AmazonOrderId>
        <LastUpdateDate>2015-06-01T04:18:58Z</LastUpdateDate>
        <ShipServiceLevel>IN Std Domestic</ShipServiceLevel>
        <NumberOfItemsShipped>0</NumberOfItemsShipped>
        <OrderStatus>Canceled</OrderStatus>
        <SalesChannel>Amazon.in</SalesChannel>
        <NumberOfItemsUnshipped>0</NumberOfItemsUnshipped>
        <IsPremiumOrder>false</IsPremiumOrder>
        <EarliestShipDate>2015-05-31T18:30:00Z</EarliestShipDate>
        <MarketplaceId>A21TJRUUN4KGV</MarketplaceId>
        <FulfillmentChannel>MFN</FulfillmentChannel>
        <IsPrime>false</IsPrime>
        <ShipmentServiceLevelCategory>Standard</ShipmentServiceLevelCategory>
    </Order>
    <Order>   
        <LatestShipDate>2015-06-02T18:29:59Z</LatestShipDate>
        <OrderType>StandardOrder</OrderType>
        <PurchaseDate>2015-05-31T04:50:07Z</PurchaseDate>
        <BuyerEmail>dr7h1rhy6457rng@marketplace.amazon.in</BuyerEmail>
        <AmazonOrderId>403-5551715-2566754</AmazonOrderId>
        <LastUpdateDate>2015-06-01T07:52:49Z</LastUpdateDate>
        <ShipServiceLevel>IN Exp Dom 2</ShipServiceLevel>
        <NumberOfItemsShipped>2</NumberOfItemsShipped>
        <OrderStatus>Shipped</OrderStatus>
        <SalesChannel>Amazon.in</SalesChannel>
        <ShippedByAmazonTFM>false</ShippedByAmazonTFM>
        <LatestDeliveryDate>2015-06-06T18:29:59Z</LatestDeliveryDate>
        <NumberOfItemsUnshipped>0</NumberOfItemsUnshipped>
        <BuyerName>Ajit Nair</BuyerName>
        <EarliestDeliveryDate>2015-06-02T18:30:00Z</EarliestDeliveryDate>
        <OrderTotal>
          <CurrencyCode>INR</CurrencyCode>
          <Amount>938.00</Amount>
        </OrderTotal>
        <IsPremiumOrder>false</IsPremiumOrder>
        <EarliestShipDate>2015-05-31T18:30:00Z</EarliestShipDate>
        <MarketplaceId>A21TJRUUN4KGV</MarketplaceId>
        <FulfillmentChannel>MFN</FulfillmentChannel>
        <TFMShipmentStatus>Delivered</TFMShipmentStatus>
        <PaymentMethod>Other</PaymentMethod>
        <ShippingAddress>
          <StateOrRegion>MAHARASHTRA</StateOrRegion>
          <City>THANE</City>
          <Phone>9769994355</Phone>
          <CountryCode>IN</CountryCode>
          <PostalCode>400709</PostalCode>
          <Name>Ajit Nair</Name>
          <AddressLine1>C-25 / con-7 / Chandralok CHS</AddressLine1>
          <AddressLine2>Sector-10 ,Koper khairne</AddressLine2>
        </ShippingAddress>
        <IsPrime>false</IsPrime>
        <ShipmentServiceLevelCategory>Expedited</ShipmentServiceLevelCategory>
      </Order>
我的代码有什么问题

编辑:完成文件的临时链接

您的XML在此处定义了默认名称空间:

<ListOrdersResponse xmlns="https://mws.amazonservices.com/Orders/2013-09-01">
根据链接到的完整XML文件,
SellerOrderId
Order
的子元素,而不是属性。在这种情况下,您只需使用
//d:Order/d:SellerOrderId
获取它们,然后打印其值,如下所示:

ns = {'d': 'https://mws.amazonservices.com/Orders/2013-09-01'}  
for node in tree.findall('.//d:Order/d:SellerOrderId', ns):
    print node.text
输出:

171-1322776-9700344
171-4214129-7148305
402-8263846-7042737
402-7017923-9474716
402-9691237-2887553
171-4614227-7597903
403-6729903-2119563
402-2184564-2676353
171-4520392-2088330
402-7986969-8827533
您的XML在此处定义了默认命名空间:

<ListOrdersResponse xmlns="https://mws.amazonservices.com/Orders/2013-09-01">
根据链接到的完整XML文件,
SellerOrderId
Order
的子元素,而不是属性。在这种情况下,您只需使用
//d:Order/d:SellerOrderId
获取它们,然后打印其值,如下所示:

ns = {'d': 'https://mws.amazonservices.com/Orders/2013-09-01'}  
for node in tree.findall('.//d:Order/d:SellerOrderId', ns):
    print node.text
输出:

171-1322776-9700344
171-4214129-7148305
402-8263846-7042737
402-7017923-9474716
402-9691237-2887553
171-4614227-7597903
403-6729903-2119563
402-2184564-2676353
171-4520392-2088330
402-7986969-8827533

xml中的
SellerOrderId
在哪里?我在任何地方都看不到
SellerOrderId
。你在期待什么?这只是。。。SellerOrderId存在于许多标记中,但不是全部。我在问题底部的链接中包含了一个完整文件的链接。xml中的
SellerOrderId
在哪里?我在任何地方都看不到
SellerOrderId
。你在期待什么?这只是。。。SellerOrderId存在于许多标记中,但不是全部。我在问题底部的链接中包含了一个完整文件的链接。