通过python将字典追加到EXCEL文件中

问题描述 投票:0回答:1

这是我的功能,通过使用此功能,我试图创建(如果文件不存在)或将字典追加到文件中。

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
python csv openpyxl xlsxwriter
1个回答
0
投票

您需要修复两件事。第一个是如何创建标题列表:

headers = list(dict.keys())

第二个是您要从字典中提取值的行:

values = [dict[key] for key in headers]

希望这会有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.