私はPythonにとって非常に新しいので、私は多くを検索しましたが、解決策を見つけることができませんでした。次のXMLファイルをCSVファイルに解析します。ネストされたxml(チャイルドの同じ名前)をCSVに解析するにはどうすればよいですか?
import xml.etree.ElementTree as ET
import csv
tree = ET.parse("my_xml_file.xml")
root = tree.getroot()
f = open('my_csv_file.csv', 'w')
csvwriter = csv.writer(f)
head = ['ID','avgSped','completed']
csvwriter.writerow(head)
for Item in root.findall('item'):
for Sensorevents in Item.findall('sensorEvents'):
row = []
id_ = Item.find('id').text
row.append(id_)
avgSped_ = Sensorevents.find('sensorEvents').find('avgSped').text
row.append(avgSped_)
completed_ = Sensorevents.find('sensorEvents').find('completed').text
row.append(completed_)
csvwriter.writerow(row)
f.close()
、結果はこれです::
<List>
<item>
<id>5939c5e20d82880efce93933</id>
<sensorEvents>
<sensorEvents>
<avgSped>48.55647532226298</avgSped>
<completed>true</completed>
</sensorEvents>
<sensorEvents>
<avgSped>39.53368357145088</avgSped>
<completed>true</completed>
</sensorEvents>
<sensorEvents>
<avgSped>41.41160105233052</avgSped>
<completed>true</completed>
</sensorEvents>
</sensorEvents>
</item>
.
.
.
.
</List>
私が書いたコードはこれです
は3 sensorEventsありますが、私のコードは、ちょうど最初のものをキャプチャします。すべてのsensorEventを読み取るようにコードを変更するにはどうすればよいですか? 本当にありがとうございます。
私にとってはうまくいった。ありがとう。 – Saeed