下面的代碼可以正常作業。但是,生成的 xml 將對每條記錄的每一行都進行相同的標記。我需要這個標簽是唯一的。我的意圖是讓標簽讀取 <row 1></row 1>, <row 2></row 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()
uj5u.com熱心網友回復:
rowNum是int,您不能簡單地連接strwith int,或者轉換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')
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/466241.html
下一篇:將XML欄位值列印到CSV
