python - 通过python将字典附加到EXCEL文件中
问题描述
这是我的功能,通过使用它我试图创建(如果文件不存在)或将字典附加到文件中。
headers = dict.keys()
if not os.path.isfile('metrics1.csv'):
with open('metrics1.csv', 'w')as csv_file:
csv_file.writelines(', '.join(headers))
if not os.path.isfile('metrics1.xlsx'):
book = xlsxwriter.Workbook('metrics1.xlsx')
sheet = book.add_worksheet("TestSheet")
for (idx, header) in enumerate(headers):
sheet.write(0, idx, header)
book.close()
with open('metrics1.csv', 'a+') as csv_file:
book = load_workbook('metrics1.xlsx')
sheet = book.get_sheet_by_name('TestSheet')
for d in dict:
values = [d[key] for key in headers]
csv_string = '\n'+', '.join(values)
csv_file.write(csv_string)
sheet.append(values)
book.save(filename='metrics1.xlsx')
我收到以下错误,
values = [d[key] for key in headers]
TypeError: string indices must be integers
解决方案
你需要修复几件事。首先,不要命名任何变量dict
。 dict
是一个 python 内置关键字。我们假设您已data
在下面的代码中对其进行了重命名。
其次,您可以更轻松地创建标题列表:
headers = list(data.keys()) # or [ key for key in data ]
第三,也是最后,是您要从字典中提取值的行:
values = [data[key] for key in headers]
希望这可以帮助!
推荐阅读
- java - 在kafka事件上触发resp api
- android - Flutter:当小部件树被锁定时调用 setState() 或 markNeedsBuild() ......在方向更改期间
- delphi - 使用 Indy 发布时使用 SSL 连接时出错
- javascript - 具有相同类的重复元素并将它们放在自己下面?
- go - 使用 Goroutine 订阅 MQTT 不打印消息
- r - 使用 dplyr 折叠行从另一个数字列获取条件
- ios - 转到 TestFlight 时,Xamarin 中的 iOS 应用程序崩溃
- javascript - 如何在 react-native 中使图片聚焦
- python - Hasseb USB DALI Master & python 库 python-dali
- python-3.x - 特金特。网格没有改变小部件的位置