Python を使用して CSV ファイルを XML 形式に変換しています。CSV ファイルには、2 (ヘッダーを含む) から無限までのさまざまな行数があります。(現実的には 10 ~ 15 ですが、パフォーマンスに重大な問題がない限り、ベースをカバーしたいと思います) ファイルを変換するために、次のコードがあります。
for row in csvData:
if rowNum == 0:
xmlData.write(' <'+csvFile[:-4]+'-1>' + "\n")
tags = row
# replace spaces w/ underscores in tag names
for i in range(len(tags)):
tags[i] = tags[i].replace(' ', '_')
if rowNum == 1:
for i in range(len(tags)):
xmlData.write(' ' + '<' + tags[i] + '>' \
+ row[i] + '</' + tags[i] + '>' + "\n")
xmlData.write(' </'+csvFile[:-4]+'-1>' + "\n" + ' <' +csvFile[:-4]+'-2>' + "\n")
if rowNum == 2:
for i in range(len(tags)):
xmlData.write(' ' + '<' + tags[i] + '>' \
+ row[i] + '</' + tags[i] + '>' + "\n")
xmlData.write(' </'+csvFile[:-4]+'-2>' + "\n")
if rowNum == 3:
for i in range(len(tags)):
xmlData.write('<'+csvFile[:-4]+'-3>' + "\n" + ' ' + '<' + tags[i] + '>' \
+ row[i] + '</' + tags[i] + '>' + "\n")
xmlData.write(' </'+csvFile[:-4]+'-3>' + "\n")
rowNum +=1
xmlData.write('</csv_data>' + "\n")
xmlData.close()
ご覧のとおり、行が存在する場合、上位レベルのタグを手動で作成するように設定しています。<csvFile-*></csvFile-*>
コードを 15 回以上繰り返すのではなく、タグを作成するという目標を達成するためのより効率的な方法はありますか? ありがとう!