用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
相关问题:
- 暂无相关问题
1 个回答
0
你需要修正几个地方。首先,最重要的是,不要把任何变量命名为 dict
。因为 dict
是 Python 里一个内置的关键字。我们假设你在下面的代码中把它改成了 data
。
其次,你可以更简单地创建你的 headers 列表:
headers = list(data.keys()) # or [ key for key in data ]
最后,第三点,就是你想从字典中提取值的那一行:
values = [data[key] for key in headers]
希望这些对你有帮助!