Добавить словарь в EXCEL файл на python - PullRequest
0 голосов
/ 04 апреля 2020

Это моя функция, с помощью которой я пытаюсь создать (если файл не существует) или добавить словарь в файл.

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 голосов
/ 04 апреля 2020

Вам нужно исправить несколько вещей. Прежде всего, не называйте никаких переменных dict. dict - это встроенное ключевое слово python. Мы предполагаем, что вы переименовали его data в приведенном ниже коде.

Во-вторых, вы можете создать свой список заголовков немного проще:

headers = list(data.keys())  #  or [ key for key in data ]

В-третьих, и, наконец, , строка, в которую вы хотите извлечь значение из словаря:

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

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...