如何在我的 XML 文件中迭代“<row></row>”标签?

How can I iterate the "<row></row>" tag in my XML file?

下面的代码可以正常工作。但是,生成的 xml 将为每条记录的每一行都标记相同。我需要这个标签是唯一的。我的意图是让标签读取 , , ... 我已经注释掉了我尝试的内容,但是当我尝试 运行 这个在 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")

或者使用一种字符串格式,例如so-called f-string(需要 python3.6 或更高版本)

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