如何在Python中将XML转换为CSV文件
发布时间:2024-01-04 06:33:06
在Python中,可以使用ElementTree模块将XML文件解析为Python对象,然后将其转换为CSV文件。
以下是一个示例,说明如何将XML文件转换为CSV文件:
1. 导入必要的库
import xml.etree.ElementTree as ET import csv
2. 解析XML文件
tree = ET.parse('input.xml')
root = tree.getroot()
3. 创建CSV文件并打开写入器
csv_file = open('output.csv', 'w')
csv_writer = csv.writer(csv_file)
4. 写入CSV文件的首行,即字段名
# 定义字段名列表
fields = []
for child in root[0]:
fields.append(child.tag)
# 写入CSV文件的首行
csv_writer.writerow(fields)
5. 写入XML数据到CSV文件
for element in root.findall('.//'):
row = []
for child in element:
row.append(child.text)
# 写入一行数据到CSV文件
csv_writer.writerow(row)
6. 关闭CSV文件
csv_file.close()
完整的示例代码:
import xml.etree.ElementTree as ET
import csv
# 解析XML文件
tree = ET.parse('input.xml')
root = tree.getroot()
# 创建CSV文件并打开写入器
csv_file = open('output.csv', 'w')
csv_writer = csv.writer(csv_file)
# 写入CSV文件的首行,即字段名
fields = []
for child in root[0]:
fields.append(child.tag)
csv_writer.writerow(fields)
# 写入XML数据到CSV文件
for element in root.findall('.//'):
row = []
for child in element:
row.append(child.text)
csv_writer.writerow(row)
# 关闭CSV文件
csv_file.close()
请注意,此示例假设XML文件的结构是固定的,即所有子元素都具有相同的标签。如果XML文件的结构不同,你需要相应地调整代码。
