如何将字典保存为excel文件

时间:2014-03-25 14:24:38

标签: python dictionary xlwt

我想保存一个字典,如:

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

有人有意见吗?

1 个答案:

答案 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']。