Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python创建Excel工作表,prog不工作_Python - Fatal编程技术网

使用python创建Excel工作表,prog不工作

使用python创建Excel工作表,prog不工作,python,Python,这是节目单 for key, value in fetched.keys(): ValueError: too many values to unpack 获取的dict包含如下数据 import xml.etree.cElementTree as etree import xlsxwriter import pprint from csv import DictWriter xmlDoc = open('C:/Users/Talha/Documents/abc.xml', 'r') xml

这是节目单

for key, value in fetched.keys():
ValueError: too many values to unpack
获取的dict包含如下数据

import xml.etree.cElementTree as etree
import xlsxwriter
import pprint
from csv import DictWriter

xmlDoc = open('C:/Users/Talha/Documents/abc.xml', 'r')
xmlDocData = xmlDoc.read()
xmlDocTree = etree.XML(xmlDocData)
sections = ['Srno','State','Statecd','District','IssuedOn','Day','normal_rainfall','normal_temp_max','normal_temp_min']
fetched = dict()
for sec in sections:
    fetched[sec] = []
    for item in xmlDocTree.iter( sec ):
        fetched[sec].append( item.text )
#print fetched['State']

workbook = xlsxwriter.Workbook('data.xlsx')
worksheet = workbook.add_worksheet()
row = 0
col = 0

for key, value in fetched.keys():
    worksheet.write(row, col, key)
    worksheet.write(row, col + 1, value)
    row += 1

workbook.close()
使用.items()同时使用键和值遍历字典

使用

更改项的键

您正在尝试将列表写入单元格。将列表转换为字符串。 使用以下概念

for key, value in fetched.items():
    worksheet.write(row, col, key)
    worksheet.write(row, col + 1, ','.join(value))
    row += 1

使用带分隔符的联接将列表转换为字符串。

对于fetched.keys()中的键使用
或者更确切地说,对于fetched.items()中的键,值使用
在您的情况下,我也尝试过这一点,但出现了类似以下文件“C:\Python27\lib\site packages\xlsxriter\worksheet.py”的错误,第65行,在cell_包装返回方法(self,*args,**kwargs)文件“C:\Python27\lib\site packages\xlsxwriter\worksheet.py”中,第433行,在write-raise-TypeError(“write()中不支持的类型%s”%type(token))中类型错误:write()中不支持的类型@big bountybut fetched不是一个列表,它是一个dict@bigbountyBut,但是fetched for键中的值,'Srno'是一个列表,它可以工作,但是数据是以水平方式列出的,也不在相应的单元格中,这是因为我使用了逗号作为分隔符。如果在excel设置中启用了逗号作为分隔符,则格式将不同。相反,尝试使用不同的分隔符,如“;”或“|”
for key, value in fetched.items():
    worksheet.write(row, col, key)
    worksheet.write(row, col + 1, ','.join(value))
    row += 1
l = ['1','2','3']
print ','.join(l)