python - 如何在 python 中将 excel 自动化为 xml?

标签 python xml linux excel python-2.7

我的问题是我分配了一项任务,因为我必须读取 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”。

一些小技巧:

  1. 您在循环的每次迭代中都打开 XML 文件,这将失败
  2. 有更简单的方法来创建 XML 文件,请查看这篇文章 https://pythonadventures.wordpress.com/2011/04/04/write-xml-to-file/
  3. 你应该检查一个 python 调试器,它会让你更容易调查,例如你的数据循环从内部看起来是什么。我最喜欢ipdb https://pypi.python.org/pypi/ipdb

关于python - 如何在 python 中将 excel 自动化为 xml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46545100/

相关文章:

python - 如何将包含组合值的一个 pandas 数据框列拆分为多个列

xml - RESTful 网络服务 : trying to achieve HATEOAS with custom XML

c++ - 终止前关闭套接字

java - Linux下查看当前网络速度

java - RHEL 5/RHEL 6 上的 libfaketime 和 java

python - 在哪里托管 Python 脚本?

python - 拓扑排序 python 实现中的错误

python - 我如何生成 100 个网格 map ?

xml - 如何使用 xslt 在特定 xml 上运行 xpath

java - 为什么 xalan 不会针对格式错误的 XML 抛出 TransformException 错误