我想保存一个字典,如:
Allfiles={'woof': '0', 'jpg': '0', 'js': '45', 'gif': '0', 'css': '11', 'png': '6'}
作为Excel文件。
我的代码就像:
workbook=xlwt.Workbook(encoding='ascii')
sheet1=workbook.add_sheet('Parsed data')
for col, caption in enumerate(Allfiles):
sheet1.write(0,col,caption)
for row,item in enumerate(Allfiles[caption]):
sheet1.write(row+1,col,str(item))
workbook.save('savexl.xls')
当我检查Excel时,输出是嘲笑。抱歉,我的声誉不足以发布图片,但问题是该程序将整数'11'和'45'视为字符串并将它们放在不同的单元格中。但是如果我没有将这些值设置为字符串,则表示“int不可迭代”的错误。那么任何人都可以帮助我吗?
更新: 一个新词典,如:
Alllists={'scrip': ['10.183.195.140'], 'host': ['edigitalsurvey.com', 'ichef.bbci.co.uk', 'notify3.dropbox.com', 'sa.bbc.co.uk', 'static.bbci.co.uk', 'www.bbc.co.uk'], 'dstip': ['108.160.162.38', '212.58.244.69', '46.236.9.36', '77.72.112.168', '81.23.53.170', '81.23.53.171'], 'referer': ['http://static.bbci.co.uk/frameworks/barlesque/2.60.6/orb/4/style/orb-fixed.css', 'http://static.bbci.co.uk/h4discoveryzone/0.233.1/style/h4discoveryzone.css', 'http://static.bbci.co.uk/h4drawers/0.66.1/style/h4drawers.css', 'http://static.bbci.co.uk/h4more/0.114.2/style/h4more.css', 'http://static.bbci.co.uk/h4popular/0.130.1/style/h4popular.css', 'http://static.bbci.co.uk/h4whatson/0.176.5/style/h4whatson.css', 'http://www.bbc.co.uk/'], 'server': []}
当我使用代码时:
for col,caption in enumerate(Alllists):
sheet1.write(4,col,caption)
for row,item in enumerate(Alllists[caption]):
sheet1.write(row+1,col,item)
workbook.save('savexl.xls')
顺便说一句,新词典应保存在Excel文件中的其他2下。
我回过头来说道:sheet1.write(row+1,col,item)
Exception: Attempt to overwrite cell: sheetname=u'Parsed data' rowx=1 colx=0
有人有意见吗?
答案 0 :(得分:1)
您的词典只有一行而不是行列表。您可以像这样更改字典结构:
Allfiles={'woof': [0], 'jpg': [0], 'js': [45], 'gif': [0], 'css': [11], 'png': [6]}
或将您的循环更改为:
workbook=xlwt.Workbook(encoding='ascii')
sheet1=workbook.add_sheet('Parsed data')
for col, caption in enumerate(Allfiles):
sheet1.write(0,col,caption)
sheet1.write(1,col,Allfiles[caption])
workbook.save('savexl.xls')
使用原始词典。
你的代码没有抛出异常的唯一原因是因为python中的字符串计为字符列表所以你可以使用'11'作为['1','1']。