XLRD / Python: Lecture de fichier Excel en dict avec des boucles

Je suis à la recherche de lire dans un classeur Excel avec 15 champs, et près de 2000 lignes, et de convertir chaque ligne d'un dictionnaire en Python. Je veux ajouter chaque dictionnaire à une liste. J'aimerais que chaque champ dans la rangée du haut du classeur à être une clé dans chaque dictionnaire, et ont la cellule correspondante de la valeur de la valeur dans le dictionnaire. Je l'ai déjà regardé des exemples ici et icimais j'aimerais faire quelque chose d'un peu différent. Le deuxième exemple de travail, mais j'ai l'impression qu'il serait plus efficace en boucle sur la rangée du haut pour remplir les clés de dictionnaire et puis itérer sur chaque ligne pour obtenir les valeurs. Mon fichier Excel contenant les données à partir des forums de discussion et ressemble à quelque chose comme ceci (évidemment avec plus de colonnes):

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'

Donc, j'aimerais les champs idthread_id et ainsi de suite, pour être les clés de dictionnaire. J'aimerais que mes dictionnaires pour ressembler à:

{id: 4, 
thread_id: 100,
forum_id: 3,
post_time: 1377000566,
votes: 1,
post_text: 'here is some text'}

D'abord, j'ai eu un code comme celui-ci d'une itération dans le fichier, mais mon champ d'action est mal pour certaines de la part des boucles et je suis générant trop de dictionnaires. Voici mon code initial:

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)

Toute aide serait grandement appréciée. Merci d'avance pour la lecture.

source d'informationauteur kylerthecreator