4
私はランダムに生成された文字列と数字を含む辞書をExcelファイルに書き込もうとしています。私はほとんど成功しましたが、小さな問題が1つあります。私の辞書の構造は以下の通りです:Python辞書をExcelファイルに書き込むにはどうすればよいですか?
Age: 11, Names Count: 3, Names: nizbh,xyovj,clier
この辞書は、テキストファイルから得られたデータから生成されたものです。年齢に基づいてすべてのコンテンツを集計し、同じ年齢の2人が1つのリストにグループ化します。私はこのデータを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
問題があなたの最後の2 'ループfor'です。あなたの頭や紙の中を慎重に歩いたり、実際に行と列に書いているものをデバッグするために 'print'ステートメントを追加してください。ヒント:いくつかのセルの内容を複数回上書きしています。 – nekomatic
Kudos @nekomaticは楽しくチャレンジし続けるためのものです –
同じセルの値をカンマで区切って印刷するヒントはありますか?他のすべては良いです。 – DeA