用Python将字典追加到EXCEL文件中

0 投票
1 回答
1235 浏览
提问于 2025-06-08 05:51

这是我的一个函数,我用它来创建一个文件(如果文件不存在的话),或者把字典内容追加到文件里。

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]

希望这些对你有帮助!

撰写回答