python - 使用带有标题样式的 Python 将字典转换为 CSV
问题描述
对于同样的 Stack Overflow 问题,如何将字典列表输出到 Excel 工作表?.
对于jossef-harush 的xlsx 代码,我们可以使用:
import xlsxwriter
# ...
def create_xlsx_file(file_path: str, headers: dict, items: list):
with xlsxwriter.Workbook(file_path) as workbook:
worksheet = workbook.add_worksheet()
worksheet.write_row(row=0, col=0, data=headers.values())
header_keys = list(headers.keys())
for index, item in enumerate(items):
row = map(lambda field_id: item.get(field_id, ''), header_keys)
worksheet.write_row(row=index + 1, col=0, data=row)
headers = {
'bank': 'Money in Bank',
'dailyWinners': 'Daily Winners',
'dailyFree': 'Daily Free',
'user': 'User',
}
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}
]
create_xlsx_file("my xslx file.xlsx", headers, players)
为了创建 CSV 文件,我需要在上面的代码中做哪些更改?
像create_csv_file("my csv file.csv", headers, player)。
解决方案
import csv
def create_csv_file(file_path, headers, items):
with open(file_path, "wt") as f:
dw = csv.DictWriter(f, headers.values(), extrasaction='ignore')
dw.writeheader()
for row in items:
dw.writerow({headers.get(k): v for (k, v) in row.items()})
写
Money in Bank,Daily Winners,Daily Free,User
0.06,3,,Player1
4.0,3,,Player2
3.1,1,2,Player3
0.32,3,2,Player4
请注意,这将忽略任何不在headers
;中的 dict 键。在你的情况下,dailyFreePlayed
s。
推荐阅读
- java - 在拆分 String() 时插入 Kotlins ${ } 表达式,以便在拆分后添加动态数据
- javascript - 如何返回一个显示每个唯一值出现总数的对象?
- sql - 在同一 SQL 行上多次使用 CAST 或 CONVERT 子句
- c - 为什么“Crafting Interpreters”解析器的解析规则表中不包含某些前缀和中缀运算符?
- c++ - C++ 需要所有声明的类型说明符和预期的非限定 ID(需要调试帮助)
- node.js - Mongo 聚合查询优化
- python - 使用 .loc() 时的 Pandas KeyError
- java - 特定时间触发时间需要多线程?
- polygon - 矢量 shp 指向具有多边形窗口的 ppp spatstat
- python - 如何在 Python 中使用 Selenium 从 github 页面 url 中抓取贡献者姓名