我對Python很新,我搜索了很多,但找不到解決方案。我想將下面的xml文件解析爲csv文件。我該如何解析嵌套的XML(與孩子相同的名稱)CSV?
<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>
,我寫的代碼是這樣的:
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()
,結果是這樣的:
有3個sensorEvents但我的代碼只是捕捉到的第一個。我如何修改代碼來讀取所有sensorEvents? 任何幫助真的很感激。
完全適合我。謝謝。 – Saeed