我的问题是我分配了一项任务,因为我必须读取 excel 文档并将该数据存储到 XML 文件中。所以我为此在 python 中完成了一段代码。但是当我写一个 XML 文件时它给我错误。
#!/usr/bin/python
import xlrd
import xml.etree.ElementTree as ET
workbook = xlrd.open_workbook('anuja.xls')
workbook = xlrd.open_workbook('anuja.xlsx', on_demand = True)
worksheet = workbook.sheet_by_index(0)
first_row = [] # Header
for col in range(worksheet.ncols):
first_row.append( worksheet.cell_value(0,col) )
# tronsform the workbook to a list of dictionnaries
data =[]
for row in range(1, worksheet.nrows):
elm = {}
for col in range(worksheet.ncols):
elm[first_row[col]]=worksheet.cell_value(row,col)
data.append(elm)
for set1 in data :
f = open('data.xml', 'w')
f.write("<Progress>%s</Progress>" % (set1[0]))
f.write("<P>%s</P>" % (set1[1]))
f.write("<Major>%s</Major>" % (set1[2]))
f.write("<pop>%s</pop>" % (set1[3]))
f.write("<Key>%s</Key>" % (set1[4]))
f.write("<Summary>%s</Summary>" % (set1[5]))
错误是
Traceback (most recent call last):
File "./read.py", line 23, in <module>
f.write("<Progress>%s</Progress>" % (set1[0]))
KeyError: 0
最佳答案
因此错误消息实际上告诉您没有您尝试写入 XML 文件的键“0”。
一些小技巧:
- 您在循环的每次迭代中都打开 XML 文件,这将失败
- 有更简单的方法来创建 XML 文件,请查看这篇文章 https://pythonadventures.wordpress.com/2011/04/04/write-xml-to-file/
- 你应该检查一个 python 调试器,它会让你更容易调查,例如你的数据循环从内部看起来是什么。我最喜欢ipdb https://pypi.python.org/pypi/ipdb
关于python - 如何在 python 中将 excel 自动化为 xml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46545100/