Ale*_*fer 6 python excel file-io dictionary list
我有一个名为'players'的列表,由字典组成.它看起来像这样:
players = [{'dailyWinners': 3, 'dailyFreePlayed': 2, 'user': 'Player1', 'bank': 0.06},
{'dailyWinners': 3, 'dailyFreePlayed': 2, 'user': 'Player2', 'bank': 4.0},
{'dailyWinners': 1, 'dailyFree': 2, 'user': 'Player3', 'bank': 3.1},
{'dailyWinners': 3, 'dailyFree': 2, 'user': 'Player4', 'bank': 0.32}]
Run Code Online (Sandbox Code Playgroud)
它的时间要长得多,但这是一段摘录.如何将这个词典列表输出到excel fils,以便按键/值整齐地组织?
非常感谢!
Fat*_*923 12
有一种方法可以将字典列表写入excel工作表.首先要确保你有XlsxWriter package.
from xlsxwriter import Workbook
players = [{'dailyWinners': 3, 'dailyFree': 2, 'user': 'Player1', 'bank': 0.06},
{'dailyWinners': 3, 'dailyFree': 2, 'user': 'Player2', 'bank': 4.0},
{'dailyWinners': 1, 'dailyFree': 2, 'user': 'Player3', 'bank': 3.1},
{'dailyWinners': 3, 'dailyFree': 2, 'user': 'Player4', 'bank': 0.32}]
ordered_list=["user","dailyWinners","dailyFree","bank"] #list object calls by index but dict object calls items randomly
wb=Workbook("New File.xlsx")
ws=wb.add_worksheet("New Sheet") #or leave it blank, default name is "Sheet 1"
first_row=0
for header in ordered_list:
col=ordered_list.index(header) # we are keeping order.
ws.write(first_row,col,header) # we have written first row which is the header of worksheet also.
row=1
for player in players:
for _key,_value in player.items():
col=ordered_list.index(_key)
ws.write(row,col,_value)
row+=1 #enter the next row
wb.close()
Run Code Online (Sandbox Code Playgroud)
我尝试了代码,成功地工作了
使用熊猫解决方案
import pandas as pd
players = [{'dailyWinners': 3, 'dailyFreePlayed': 2, 'user': 'Player1', 'bank': 0.06},
{'dailyWinners': 3, 'dailyFreePlayed': 2, 'user': 'Player2', 'bank': 4.0},
{'dailyWinners': 1, 'dailyFree': 2, 'user': 'Player3', 'bank': 3.1},
{'dailyWinners': 3, 'dailyFree': 2, 'user': 'Player4', 'bank': 0.32}]
df = pd.DataFrame.from_dict(players)
print (df)
df.to_excel('players.xlsx')
Run Code Online (Sandbox Code Playgroud)
小智 2
测试.py
from csv import DictWriter
players = [{'dailyWinners': 3, 'dailyFreePlayed': 2, 'user': 'Player1', 'bank': 0.06},
{'dailyWinners': 3, 'dailyFreePlayed': 2, 'user': 'Player2', 'bank': 4.0},
{'dailyWinners': 1, 'dailyFree': 2, 'user': 'Player3', 'bank': 3.1},
{'dailyWinners': 3, 'dailyFree': 2, 'user': 'Player4', 'bank': 0.32}]
with open('spreadsheet.csv','w') as outfile:
writer = DictWriter(outfile, ('dailyWinners','dailyFreePlayed','dailyFree','user','bank'))
writer.writeheader()
writer.writerows(players)
Run Code Online (Sandbox Code Playgroud)
跑步python test.py
spreadsheet.csv然后在 Excel 中打开生成的文件。
注意:我运行的是 Linux,因此无法使用 Microsoft Excel 进行测试。这适用于 LibreOffice Calc,并提供一个电子表格,其中键是列名称,值位于相应的列下。
| 归档时间: |
|
| 查看次数: |
11422 次 |
| 最近记录: |