如何在 XML 文件中迭代 "<row></row>" 标记?



下面的代码将正常工作。但是,生成的xml将使每个记录的每一行都有相同的标记。我需要这个标签唯一。我的意图是让标签读取<第1行><;第2行>;我已经注释了我的尝试,但我得到一个类型错误,当我试图在python中运行这个。有人知道解决这个问题的方法吗?

import csv
csvFile = 'BySystem.csv'
xmlFile = 'BySystem.xml'
csvData = csv.reader(open(csvFile))
xmlData = open(xmlFile, 'w')
xmlData.write('<?xml version="1.0"?>' + "n")

rowNum = 0
for row in csvData:
if rowNum == 0:
tags = row
# replace spaces w/ underscores in tag names
for i in range(len(tags)):
tags[i] = tags[i].replace(' ', '_')
else: 
#xmlData.write('<row ' + rowNum + '>' + "n")
xmlData.write('<row>' + "n")
for i in range(len(tags)):
xmlData.write('    ' + '<' + tags[i] + '>' 
+ row[i] + '</' + tags[i] + '>' + "n")
#xmlData.write('</row ' + rowNum + '>' + "n")
xmlData.write('</row>' + "n")

rowNum +=1
xmlData.write('</csv_data>' + "n")
xmlData.close()

rowNumint,您不能简单地将strint连接,或者在连接之前将int转换为str,即替换

xmlData.write('<row ' + rowNum + '>' + "n")
xmlData.write('</row ' + rowNum + '>' + "n")

使用

xmlData.write('<row ' + str(rowNum) + '>' + "n")
xmlData.write('</row ' + str(rowNum) + '>' + "n")

或使用一种字符串格式,例如所谓的f-string(需要python3.6或更新版本)

xmlData.write(f'<row {rowNum}>n')
xmlData.write(f'</row {rowNum}>n')

相关内容

  • 没有找到相关文章

最新更新