簡體   English   中英

如何將python字典寫入excel文件?

[英]How do I write a python dictionary to an excel file?

我正在嘗試將隨機生成的字符串和數字的字典寫入excel文件。 我幾乎成功但有一個小問題。 我字典的結構如下:

Age: 11, Names Count: 3, Names: nizbh,xyovj,clier

該字典是通過文本文件獲得的數據生成的。 它根據年齡匯總所有內容,如果兩個人的年齡相同,則將它們分組到一個列表中。 我正在嘗試將此數據寫入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()  

但實際上這是做什么的(在excel文件中):

11    nizbh
      xyovj
      clier

我應該怎么做讓它看起來像這樣?

Age   Name Count         Names 
11        3        nizbh, xyovj, clier

問題確實存在於兩個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]))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM