如何解决如何在Python中将XML文件写入CSV文件?
我有一个看起来像这样的XML文件:
<?xml version="1.0"?>
-<Object>
<ID>Object_01</ID>
<Location>Manchester</Location>
<Date>01-01-2020</Date>
<Time>15u59m05s</Time>
-<Max_25Hz>
<25Hz1>0.9166</25Hz>
<25Hz2>0.7979</25Hz>
</Max_25Hz>
-<Max_75Hz>
<75Hz1>1.9659</75Hz>
<75Hz2>1.4831</75Hz>
</Max_75Hz>
</Object>
现在,我想将数据写入一个由制表符分隔的CSV文件,如下所示:
ID Location Date&Time 25Hz1 25Hz2
Object_01 Manchester 01-01-2020 15:59:05 0.9166 0.7979
请注意,日期和时间在XML文件中分开,但是我在CSV文件中需要它们。
这是我尝试的代码:
import xml.etree.ElementTree as ET
import csv
root = r'c:\data\FF\Desktop\my_file\XML-files\Object_01.xml'
tree = ET.parse(root)
root = tree.getroot()
headers = ['ID','Location','Date&Time','25Hz1','25Hz2']
with open ('new_XML_file.txt','w') as f:
writer = csv.writer(f)
for item in root.findall('Object'):
row = []
ID = item.find('Object').find('ID').text
row.append(ID)
location = item.find('Object').find('Location').text
row.append(location)
date = item.find('Object').find('Date').text
time = item.find('Object').find('Location').text
date_time = date+time
row.append(location)
var_25Hz1 = item.find('Max_25Hzt').find('25Hz1').text
row.append(var_25Hz1 )
var_25Hz2 = item.find('Max_25Hz').find('25Hz2').text
row.append(var_25Hz2 )
writer.writerow(headers)
writer.writerow(row)
我刚刚得到一个空的new_XML_file.txt
,没有任何错误。谁知道我在做什么错以及如何解决这个问题?
解决方法
您的示例中的root
是object
,因此当您写:for item in root.findall('Object')
时,您什么也找不到。
尝试:
for item in root:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。