Я ищу для чтения в книге Excel с 15 полями и около 2000 строк и конвертирует каждую строку в словарь в Python. Затем я хочу добавить каждый словарь в список. Я хотел бы, чтобы каждое поле в верхней строке книги являлось ключом в каждом словаре, а соответствующее значение ячейки - значение внутри словаря. Я уже рассмотрел примеры здесь и здесь, но я хотел бы сделать что-то немного другое. Второй пример будет работать, но я чувствую, что более эффективная петля над верхней строкой будет заполнять ключи словаря, а затем перебирать каждую строку, чтобы получить значения. Мой файл Excel содержит данные из дискуссионных форумов и выглядит примерно так (очевидно, с большим количеством столбцов):
id thread_id forum_id post_time votes post_text
4 100 3 1377000566 1 'here is some text'
5 100 4 1289003444 0 'even more text here'
Итак, мне нужны поля id
, thread_id
и т.д., чтобы быть клавишами словаря. Я бы хотел, чтобы мои словари выглядели так:
{id: 4,
thread_id: 100,
forum_id: 3,
post_time: 1377000566,
votes: 1,
post_text: 'here is some text'}
Изначально у меня был такой код, как это, итерация через файл, но моя область не подходит для некоторых из циклов for-loops, и я генерирую слишком много словарей. Здесь мой начальный код:
import xlrd
from xlrd import open_workbook, cellname
book = open('forum.xlsx', 'r')
sheet = book.sheet_by_index(3)
dict_list = []
for row_index in range(sheet.nrows):
for col_index in range(sheet.ncols):
d = {}
# My intuition for the below for-loop is to take each cell in the top row of the
# Excel sheet and add it as a key to the dictionary, and then pass the value of
# current index in the above loops as the value to the dictionary. This isn't
# working.
for i in sheet.row(0):
d[str(i)] = sheet.cell(row_index, col_index).value
dlist.append(d)
Любая помощь будет принята с благодарностью. Заранее благодарим за чтение.