如何将python字典写入Excel文件?

DeA*_*DeA 5 python excel dictionary

我正在尝试将包含随机生成的字符串和数字的字典写到Excel文件中。我几乎成功了,但有一个小问题。我的字典的结构如下:

Age: 11, Names Count: 3, Names: nizbh,xyovj,clier
Run Code Online (Sandbox Code Playgroud)

该字典是根据通过文本文件获得的数据生成的。它根据年龄对所有内容进行汇总,如果两个人的年龄相同,则将其分组为一个列表。我正在尝试将此数据写入Excel文件。到目前为止,我已经编写了这段代码。

import xlsxwriter
lines = []

workbook = xlsxwriter.Workbook('demo.xlsx')
worksheet = workbook.add_worksheet()

with open ("input2.txt") as input_fd:
    lines = input_fd.readlines()

age_and_names = {}

for line in lines:
    name,age = line.strip().split(",")


    if not age in age_and_names:
        age_and_names[age]=[]

    age_and_names[age].append(name)

print age_and_names

for key in sorted(age_and_names): 
    print "Age: {}, Names Count: {}, Names: {}".format(key, len(age_and_names[key]), ",".join(age_and_names[key]))

row=0
col=0

for key in sorted(age_and_names):#.keys():
    row += 1
    worksheet.write(row, col, key)

    for item in age_and_names[key]:
        worksheet.write(row, col+1, len(age_and_names[key]))
        worksheet.write(row, col+1, item)
        row+=1 

workbook.close()  
Run Code Online (Sandbox Code Playgroud)

但是,这实际上是在做什么(在excel文件中):

11    nizbh
      xyovj
      clier
Run Code Online (Sandbox Code Playgroud)

我应该怎么做才能使其看起来像这样?

Age   Name Count         Names 
11        3        nizbh, xyovj, clier
Run Code Online (Sandbox Code Playgroud)

DeA*_*DeA 3

问题确实出在两个 for 循环上。我与他们进行干预和玩耍,直到找到答案。他们工作得很好。感谢你们!

将最后的 for 循环替换为:

for key in sorted(age_and_names):#.keys():
    row+=1
    worksheet.write(row, col, key)
    worksheet.write(row, col+1, len(age_and_names[key]))
    worksheet.write(row, col+2, ",".join(age_and_names[key]))
Run Code Online (Sandbox Code Playgroud)