Estoy tratando de escribir un progtwig que cargue un file Excel en un dictionary en Python. Tengo problemas para tratar de averiguar cómo proceder. Sé cómo cargar un único valor en una key, pero este file tiene más de un valor asignado a cada tecla. ¿Cómo sería el código para esto? Digamos que todo en la columna A del file Excel es un nombre, y todo en las columnas B, C y D pertenece a cada nombre en A. Quiero que A sea la key y B, C y D sean los valores.
De su descripción, el siguiente código funcionaría:
import csv # Result dictionary result = {} # Open the file in Universal mode with open('Fruit.csv', 'rU') as f: # Get the CSV reader and skip header reader = csv.reader(f) reader.next() for row in reader: #First column is the key, the rest is value result[row[0]] = row[1:]
ACTUALIZADO: Si necesita verificar el resultado de ejecución, reemplace el bloque por esto:
for row in reader: #First column is the key, the rest is value result[row[0]] = row[1:] # Print row print row # Print result print row[0], ':', result[row[0]]
Creo que los siguientes pasos harán este trabajo:
Para el paso 1, puede get ayuda de xlrd
Para el paso 2, consulte el siguiente código:
# read excel and get appropriate sheet rb = xlrd.open_workbook(filename, on_demand=True, formatting_info=True) my_sheet = rb.sheet_by_name(u'template name') # get column names in item_list item_list = my_sheet.row_values(1) nrows = my_sheet.rows ncolumns = my_sheet.columns key_index = item_list.index('A') value_index = item_list.index('B') # of course 'C' and 'D' if needed
Para el paso 3, puede usar el índice para get valor en cada fila
for row in nrows: key = my_sheet[row][key_index] ....
Por favor, vea mi aplicación si es necesario, no es lo mismo, pero tal vez esté relacionado con el uso de Python Excel, espero que sea útil.