title: Convert xml to csv in Python
body: <p>I have the following XML structure and I am trying to convert it into a csv in python:</p>
  
  <pre><code>&lt;FIXML&gt;&lt;Batch&gt;
  &lt;PosRpt RptID="34868232064" ReqID="C905EOD20160427" SetSesID="EOD" MtchStat="0" PriSetPx="326.6" SetPx="328.3" SetPxTyp="1" SettlCcy="USD" ReqTyp="1" MsgEvtSrc="REG" BizDt="2016-04-27" SettlDt="2016-07-14" SettlCurrFxRt="1"&gt;&lt;Pty ID="CME" R="21"&gt;&lt;/Pty&gt;&lt;Pty ID="905" R="4"&gt;&lt;/Pty&gt;&lt;Pty ID="CBT" R="22"&gt;&lt;/Pty&gt;&lt;Pty ID="905" R="38"&gt;&lt;Sub ID="1" Typ="26"/&gt;&lt;/Pty&gt;&lt;Pty ID="905" R="1"&gt;&lt;/Pty&gt;&lt;Instrmt ID="06" Desc="SOYBEAN MEAL FUTURES" CFI="FCAPSO" SecTyp="FUT" Src="H" MMY="201607" MatDt="2016-07-14" Mult="100" Exch="CBT" UOM="tn" UOMQty="100" PxUOM="TON" PxUOMQty="1" ValMeth="FUT" Fctr="1" PxQteCcy="USD" FnlSettlCcy="USD"&gt;&lt;/Instrmt&gt;&lt;Qty Long="2038" Short="1354" Typ="ETR"/&gt;&lt;Qty Long="1289" Short="1436" Typ="ALC"/&gt;&lt;Qty Long="0" Short="10" Typ="TRF"/&gt;&lt;Qty Long="4122" Short="8098" Typ="SOD"/&gt;&lt;Qty Long="3957" Short="7406" Typ="FIN"/&gt;&lt;Qty Long="937" Short="6325" Typ="IES"/&gt;&lt;Qty Long="35" Short="55" Typ="IAS"/&gt;&lt;Amt Typ="SMTM" Amt="-675920" Ccy="USD"/&gt;&lt;Amt Typ="TVAR" Amt="-325070.33" Ccy="USD"/&gt;&lt;Amt Typ="FMTM" Amt="-1000990.33" Ccy="USD"/&gt;&lt;/PosRpt&gt;
  &lt;TrdCaptRpt RptID="21195360680" TrdTyp="0" TrdSubTyp="5" ExecID="85271320160426220810TN0002521" TrdDt="2016-04-27" BizDt="2016-04-27" MLegRptTyp="1" MtchStat="0" MsgEvtSrc="REG" TrdID="106695" LastQty="1" LastPx="323.5" TxnTm="2016-04-27T01:10:25-05:00" SettlCcy="USD" SettlDt="2016-07-14" PxSubTyp="1" VenueTyp="E" VenuTyp="E" OfstInst="0"&gt;&lt;Instrmt ID="06" Desc="SOYBEAN MEAL FUTURES" CFI="FCAPSO" SecTyp="FUT" MMY="201607" MatDt="2016-07-14" Mult="100" Exch="CBT" UOM="tn" UOMQty="100" PxUOM="TON" PxUOMQty="1" ValMeth="FUT" Fctr="1" PxQteCcy="USD"&gt;&lt;/Instrmt&gt;&lt;Amt Typ="TVAR" Amt="480" Ccy="USD"/&gt;&lt;RptSide Side="1" ClOrdID="25245816" CustCpcty="4" OrdTyp="M" SesID="EOD" SesSub="E" AllocInd="1" AgrsrInd="Y"&gt;&lt;Pty ID="CME" R="21"&gt;&lt;/Pty&gt;&lt;Pty ID="905" R="4"&gt;&lt;/Pty&gt;&lt;Pty ID="CBT" R="22"&gt;&lt;/Pty&gt;&lt;Pty ID="905" R="1"&gt;&lt;/Pty&gt;&lt;Pty ID="434GU400" R="24"&gt;&lt;Sub ID="1" Typ="26"/&gt;&lt;/Pty&gt;&lt;Pty ID="4QOL" R="12"&gt;&lt;/Pty&gt;&lt;Pty ID="685" R="17"&gt;&lt;/Pty&gt;&lt;Pty ID="4QOL" R="37"&gt;&lt;/Pty&gt;&lt;Pty ID="905" R="38"&gt;&lt;Sub ID="1" Typ="26"/&gt;&lt;/Pty&gt;&lt;Pty ID="905" R="7"&gt;&lt;/Pty&gt;&lt;RegTrdID ID="FECC1544943BFEC0302D5F8342" Src="1010000023" Typ="0" Evnt="2"/&gt;&lt;/RptSide&gt;&lt;/TrdCaptRpt&gt;
  &lt;TrdCaptRpt RptID="21196531008" TrdTyp="0" TrdSubTyp="5" ExecID="88421020160427065733TN0007200" TrdDt="2016-04-27" BizDt="2016-04-27" MLegRptTyp="1" MtchStat="0" MsgEvtSrc="REG" TrdID="115357" LastQty="2" LastPx="325.7" TxnTm="2016-04-27T07:00:12-05:00" SettlCcy="USD" SettlDt="2016-07-14" PxSubTyp="1" VenueTyp="E" VenuTyp="E" OfstInst="0"&gt;&lt;Instrmt ID="06" Desc="SOYBEAN MEAL FUTURES" CFI="FCAPSO" SecTyp="FUT" MMY="201607" MatDt="2016-07-14" Mult="100" Exch="CBT" UOM="tn" UOMQty="100" PxUOM="TON" PxUOMQty="1" ValMeth="FUT" Fctr="1" PxQteCcy="USD"&gt;&lt;/Instrmt&gt;&lt;Amt Typ="TVAR" Amt="-520" Ccy="USD"/&gt;&lt;RptSide Side="2" ClOrdID="25246712" CustCpcty="4" OrdTyp="M" SesID="EOD" SesSub="E" AllocInd="1" AgrsrInd="Y"&gt;&lt;Pty ID="CME" R="21"&gt;&lt;/Pty&gt;&lt;Pty ID="905" R="4"&gt;&lt;/Pty&gt;&lt;Pty ID="CBT" R="22"&gt;&lt;/Pty&gt;&lt;Pty ID="905" R="1"&gt;&lt;/Pty&gt;&lt;Pty ID="434GU400" R="24"&gt;&lt;Sub ID="1" Typ="26"/&gt;&lt;/Pty&gt;&lt;Pty ID="4QOL" R="12"&gt;&lt;/Pty&gt;&lt;Pty ID="685" R="17"&gt;&lt;/Pty&gt;&lt;Pty ID="4QOL" R="37"&gt;&lt;/Pty&gt;&lt;Pty ID="905" R="38"&gt;&lt;Sub ID="1" Typ="26"/&gt;&lt;/Pty&gt;&lt;Pty ID="905" R="7"&gt;&lt;/Pty&gt;&lt;RegTrdID ID="FECC1544943BFEC0302D64A564" Src="1010000023" Typ="0" Evnt="2"/&gt;&lt;/RptSide&gt;&lt;/TrdCaptRpt&gt;
  &lt;PosRpt RptID="34868266266" ReqID="C905EOD20160427" SetSesID="EOD" MtchStat="0" PriSetPx="136" SetPx="136" SetPxTyp="1" SettlCcy="USD" ReqTyp="1" MsgEvtSrc="REG" BizDt="2016-04-27" SettlDt="2016-12-28" SettlCurrFxRt="1"&gt;&lt;Pty ID="CME" R="21"&gt;&lt;/Pty&gt;&lt;Pty ID="905" R="4"&gt;&lt;/Pty&gt;&lt;Pty ID="CBT" R="22"&gt;&lt;/Pty&gt;&lt;Pty ID="99106105" R="38"&gt;&lt;Sub ID="2" Typ="26"/&gt;&lt;/Pty&gt;&lt;Pty ID="905" R="1"&gt;&lt;/Pty&gt;&lt;Instrmt ID="UFU" Desc="UAN FOB NOLA SWAP" CFI="FCACSO" SecTyp="FUT" Src="H" MMY="201612" MatDt="2016-12-28" Mult="100" Exch="CBT" UOM="tn" UOMQty="100" PxUOM="TON" PxUOMQty="1" ValMeth="FUT" Fctr="1" PxQteCcy="USD" FnlSettlCcy="USD"&gt;&lt;/Instrmt&gt;&lt;Qty Long="30" Short="0" Typ="SOD"/&gt;&lt;Qty Long="30" Short="0" Typ="FIN"/&gt;&lt;Qty Long="30" Short="0" Typ="IES"/&gt;&lt;Amt Typ="SMTM" Amt="0" Ccy="USD"/&gt;&lt;Amt Typ="TVAR" Amt="0" Ccy="USD"/&gt;&lt;Amt Typ="FMTM" Amt="0" Ccy="USD"/&gt;&lt;RegTrdID ID="PSC152CEF79387P0203D81FA" Src="1010000023" Typ="0" Evnt="2"/&gt;&lt;/PosRpt&gt;
  &lt;PosRpt RptID="34868372999" ReqID="C905EOD20160427" SetSesID="EOD" MtchStat="0" PriSetPx="675.25" SetPx="669.25" SetPxTyp="1" SettlCcy="USD" ReqTyp="1" MsgEvtSrc="REG" BizDt="2016-04-27" SettlDt="2016-06-30" SettlCurrFxRt="1"&gt;&lt;Pty ID="CME" R="21"&gt;&lt;/Pty&gt;&lt;Pty ID="905" R="4"&gt;&lt;/Pty&gt;&lt;Pty ID="CME" R="22"&gt;&lt;/Pty&gt;&lt;Pty ID="98812736" R="38"&gt;&lt;Sub ID="2" Typ="26"/&gt;&lt;/Pty&gt;&lt;Pty ID="905" R="1"&gt;&lt;/Pty&gt;&lt;Instrmt ID="CPC" Desc="MALAYSIAN CRUDE PALM OIL CAL S" CFI="FCACSO" SecTyp="FUT" Src="H" MMY="201606" MatDt="2016-06-30" Mult="25" Exch="CME" UOMQty="25" PxUOM="MTONS" PxUOMQty="1" ValMeth="FUT" Fctr="1" PxQteCcy="USD" FnlSettlCcy="USD"&gt;&lt;/Instrmt&gt;&lt;Qty Long="0" Short="200" Typ="SOD"/&gt;&lt;Qty Long="0" Short="200" Typ="FIN"/&gt;&lt;Qty Long="0" Short="200" Typ="IES"/&gt;&lt;Amt Typ="SMTM" Amt="30000" Ccy="USD"/&gt;&lt;Amt Typ="TVAR" Amt="0" Ccy="USD"/&gt;&lt;Amt Typ="FMTM" Amt="30000" Ccy="USD"/&gt;&lt;RegTrdID ID="PSC154373D5298P0302DFC70" Src="1010000023" Typ="0" Evnt="2"/&gt;&lt;/PosRpt&gt;
  &lt;PosRpt RptID="34868373000" ReqID="C905EOD20160427" SetSesID="EOD" MtchStat="0" PriSetPx="665.75" SetPx="661.5" SetPxTyp="1" SettlCcy="USD" ReqTyp="1" MsgEvtSrc="REG" BizDt="2016-04-27" SettlDt="2016-11-30" SettlCurrFxRt="1"&gt;&lt;Pty ID="CME" R="21"&gt;&lt;/Pty&gt;&lt;Pty ID="905" R="4"&gt;&lt;/Pty&gt;&lt;Pty ID="CME" R="22"&gt;&lt;/Pty&gt;&lt;Pty ID="98812736" R="38"&gt;&lt;Sub ID="2" Typ="26"/&gt;&lt;/Pty&gt;&lt;Pty ID="905" R="1"&gt;&lt;/Pty&gt;&lt;Instrmt ID="CPC" Desc="MALAYSIAN CRUDE PALM OIL CAL S" CFI="FCACSO" SecTyp="FUT" Src="H" MMY="201611" MatDt="2016-11-30" Mult="25" Exch="CME" UOMQty="25" PxUOM="MTONS" PxUOMQty="1" ValMeth="FUT" Fctr="1" PxQteCcy="USD" FnlSettlCcy="USD"&gt;&lt;/Instrmt&gt;&lt;Qty Long="0" Short="400" Typ="SOD"/&gt;&lt;Qty Long="0" Short="400" Typ="FIN"/&gt;&lt;Qty Long="0" Short="400" Typ="IES"/&gt;&lt;Amt Typ="SMTM" Amt="42500" Ccy="USD"/&gt;&lt;Amt Typ="TVAR" Amt="0" Ccy="USD"/&gt;&lt;Amt Typ="FMTM" Amt="42500" Ccy="USD"/&gt;&lt;RegTrdID ID="PSC1540E0A7EA6P0302DFB8E" Src="1010000023" Typ="0" Evnt="2"/&gt;&lt;/PosRpt&gt;
  &lt;TrdCaptRpt RptID="21202575211" TrdTyp="0" TrdDt="2016-04-27" BizDt="2016-04-27" MLegRptTyp="2" MtchStat="1" MsgEvtSrc="REG" TrdID="000991" LastQty="100" LastPx="0.31" TxnTm="2016-04-27T12:33:54-05:00" SettlCcy="USD" SettlDt="2016-08-03" OrigTrdID="15457C3D779LEB0202D1BC6" PxSubTyp="1" VenueTyp="P" VenuTyp="P"&gt;&lt;Instrmt ID="DA" Desc="CLASS III MILK OPTIONS" CFI="OCAXPS" SecTyp="OOF" MMY="201607" MatDt="2016-08-03" StrkPx="13.75" Mult="2000" Exch="CME" UOM="lbs" UOMQty="200000" PxUOM="LBS" PxUOMQty="100" PutCall="1" ValMeth="EQTY" Fctr="1" PxQteCcy="USD"&gt;&lt;/Instrmt&gt;&lt;Undly CFI="FCACSO" Desc="CLASS III MILK FUTURES" ID="DA" Src="H" MMY="201607" SecTyp="FUT" Exch="CME"&gt;&lt;/Undly&gt;&lt;Amt Typ="PREM" Amt="62000" Ccy="USD"/&gt;&lt;RptSide Side="2" ClOrdID="660" CustCpcty="4" OrdTyp="L" SesID="EOD" SesSub="P" TmBkt="V" AllocInd="1" AgrsrInd="Y"&gt;&lt;Pty ID="CME" R="21"&gt;&lt;/Pty&gt;&lt;Pty ID="905" R="4"&gt;&lt;/Pty&gt;&lt;Pty ID="CME" R="22"&gt;&lt;/Pty&gt;&lt;Pty ID="905" R="1"&gt;&lt;/Pty&gt;&lt;Pty ID="77040322" R="24"&gt;&lt;Sub ID="1" Typ="26"/&gt;&lt;/Pty&gt;&lt;Pty ID="BKF" R="12"&gt;&lt;/Pty&gt;&lt;Pty ID="826" R="17"&gt;&lt;/Pty&gt;&lt;Pty ID="BLT" R="37"&gt;&lt;/Pty&gt;&lt;Pty ID="905" R="38"&gt;&lt;Sub ID="1" Typ="26"/&gt;&lt;/Pty&gt;&lt;Pty ID="905" R="7"&gt;&lt;/Pty&gt;&lt;RegTrdID ID="FECC15457C3D779LEB0202D1BC8" Src="1010000023" Typ="0" Evnt="2"/&gt;&lt;/RptSide&gt;&lt;/TrdCaptRpt&gt;
  &lt;TrdCaptRpt RptID="21206412158" TrdTyp="0" TrdSubTyp="5" TrdDt="2016-04-27" BizDt="2016-04-27" MLegRptTyp="1" MtchStat="1" MsgEvtSrc="REG" TrdID="124710" LastQty="5" LastPx="0.13" SettlCcy="USD" SettlDt="2016-08-31" PxSubTyp="1" VenueTyp="P" VenuTyp="P" OfstInst="0"&gt;&lt;Instrmt ID="DA" Desc="CLASS III MILK OPTIONS" CFI="OPAXPS" SecTyp="OOF" MMY="201608" MatDt="2016-08-31" StrkPx="13" Mult="2000" Exch="CME" UOM="lbs" UOMQty="200000" PxUOM="LBS" PxUOMQty="100" PutCall="0" ValMeth="EQTY" Fctr="1" PxQteCcy="USD"&gt;&lt;/Instrmt&gt;&lt;Undly CFI="FCACSO" Desc="CLASS III MILK FUTURES" ID="DA" Src="H" MMY="201608" SecTyp="FUT" Exch="CME"&gt;&lt;/Undly&gt;&lt;Amt Typ="PREM" Amt="1300" Ccy="USD" SettlDt="2016-04-27"/&gt;&lt;RptSide Side="2" ClOrdID="726" CustCpcty="4" OrdTyp="L" SesID="EOD" SesSub="P" TmBkt="M" AllocInd="1" AgrsrInd="Y"&gt;&lt;Pty ID="CME" R="21"&gt;&lt;/Pty&gt;&lt;Pty ID="905" R="4"&gt;&lt;/Pty&gt;&lt;Pty ID="CME" R="22"&gt;&lt;/Pty&gt;&lt;Pty ID="905" R="1"&gt;&lt;/Pty&gt;&lt;Pty ID="7704038A" R="24"&gt;&lt;Sub ID="1" Typ="26"/&gt;&lt;/Pty&gt;&lt;Pty ID="GRTY" R="12"&gt;&lt;/Pty&gt;&lt;Pty ID="888" R="17"&gt;&lt;/Pty&gt;&lt;Pty ID="GRTY" R="37"&gt;&lt;/Pty&gt;&lt;Pty ID="905" R="38"&gt;&lt;Sub ID="1" Typ="26"/&gt;&lt;/Pty&gt;&lt;Pty ID="905" R="7"&gt;&lt;/Pty&gt;&lt;RegTrdID ID="FECC1544943BFEC0302D9028AE" Src="1010000023" Typ="0" Evnt="2"/&gt;&lt;/RptSide&gt;&lt;/TrdCaptRpt&gt;
  &lt;/Batch&gt;&lt;/FIXML&gt;
  </code></pre>
  
  <p>And I am trying to convert this into a csv file. I have tried it with the following code but I can;t get the right output:</p>
  
  <pre><code>from xml.etree import ElementTree
  import csv
  
  my_list = []
  
  with open('/Users/testuser/Desktop/CMEREG1.XML', 'rt') as f:
      tree = ElementTree.parse(f)
  
  for node in tree.iter('TrdCaptRpt'):
      RptID = node.attrib.get('RptID')
      TrdTyp = node.attrib.get('TrdTyp')
      TrdSubTyp = node.attrib.get('TrdSubTyp')
      TrdDt = node.attrib.get('TrdDt')
      BizDt = node.attrib.get('BizDt')
      MLegRptTyp = node.attrib.get('MLegRptTyp')
      MtchStat = node.attrib.get('MtchStat')
      MsgEvtSrc = node.attrib.get('MsgEvtSrc')
      TrdID = node.attrib.get('TrdID')
      LastQty = node.attrib.get('LastQty')
      LastPx = node.attrib.get('LastPx')
      TxnTm = node.attrib.get('TxnTm')
      SettlCcy = node.attrib.get('SettlCcy')
      SettlDt = node.attrib.get('SettlDt')
      PxSubTyp = node.attrib.get('PxSubTyp')
      VenueTyp = node.attrib.get('VenueTyp')
      VenuTyp = node.attrib.get('VenuTyp')
      OfstInst = node.attrib.get('OfstInst')
  
      my_list.append[node.attrib.get('RptID')]
  
      print RptID, TrdTyp, TrdSubTyp, TrdDt, BizDt, MLegRptTyp, MtchStat, MsgEvtSrc, TrdID, LastQty, LastPx, TxnTm, SettlCcy, SettlDt, PxSubTyp, VenueTyp, VenuTyp, OfstInst
  
  with open('/Users/anantsangar/Desktop/output.csv', 'w') as csvfile:
      spamwriter = csv.writer(csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL)
      spamwriter.writerow(my_list)
  </code></pre>
  
  <p>I can't get every tag into the csv. Is there a easy way to export this to a CSV ?</p>
  
  <p>Thank you</p>