如何将字典转储到具有适当列alignment的.xlsx文件中?

我有一个包含2000个项目的字典,如下所示:

d = {'10071353': (0, 0), '06030011': (6, 0), '06030016': (2, 10), ...} 

鉴于我想写入一个.xlsx文件,我使用这个代码(从这里取得 ):

 import xlsxwriter workbook = xlsxwriter.Workbook('myfile.xlsx') worksheet = workbook.add_worksheet() row = 0 col = 0 order=sorted(d.keys()) for key in order: row += 1 worksheet.write(row, col, key) for item in d[key]: worksheet.write(row, col + 1, item) row += 1 workbook.close() 

这将生成一个.xlsx文件,具有以下alignment方式:

  AB 06030001 0 10 06030002 10 10 06030003 5 10 

不过,这是我之后的路线:

 ABC 06030001 0 10 06030002 10 10 06030003 5 10 

为了达到这个目的我应该怎样改变脚本?

这是我认为应该帮助的:

 import xlsxwriter workbook = xlsxwriter.Workbook('myfile.xlsx') worksheet = workbook.add_worksheet() row = 0 col = 0 order=sorted(d.keys()) for key in order: row += 1 worksheet.write(row, col, key) i =1 for item in d[key]: worksheet.write(row, col + i, item) i += 1 workbook.close() IN: d={'10071353':(0, 0),'06030011':(6, 0),'06030016':(2, 10) OUT: ABC 06030001 6 0 06030002 2 10 06030003 0 0 

我想你只是放错了一个variables。

 worksheet.write(row, col + 1, item) row += 1 

这是错误的, row +=1应该被replace为col +=1

这是正确的方法,你可以使用相同的variables。

 import xlsxwriter workbook = xlsxwriter.Workbook('myfile.xlsx') worksheet = workbook.add_worksheet() row = 0 col = 0 order=sorted(d.keys()) for key in order: row += 1 print(key) worksheet.write(row, col, key) for item in d[key]: print(item,row, col+1) worksheet.write(row, col + 1, item) col += 1 col = 0 workbook.close() 

输出:

在这里输入图像说明

最好的方法是使用pandas来完成这个任务。 有些文档可以在这里find( http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_excel.html

 import pandas as pd a = {'1':[1,2,3,4], '2':[5,6,7,8]} a = pd.DataFrame(a) writer = pd.ExcelWriter('test.xlsx', engine='xlsxwriter') a.to_excel(writer, sheet_name='Sheet1') writer.save() 

您可能需要安装xlsxwriter软件包