2017-02-03 3 views
1

Я хотел бы преобразовать один столбец в свой Excel в список словарей. Является ли это возможным?Преобразование одного столбца в список dicts

ввода пробы:

A  B  C  D  E 
0.00 10.00 22.00 10.00 15.00 
1.00 81.29 28.00 23.33 18.38 

Выход образца:

somefunc(column="A") 
[{ "A": 0.00 }, { "A": 1.00 }] 

В настоящее время я использую этот код, а затем удалить лишние ключи .. что не имеет смысла.

def to_dict(file_path, header_index=0, sheet_index=0): 
    data, keys, sheet = {}, [], _read(file_path).sheet_by_index(sheet_index) 
    for col_index in xrange(0, sheet.ncols): 
     keys.append(sheet.cell(header_index, col_index).value.encode("utf-8")) 
    for row_index in xrange(2, sheet.nrows): 
     for col_index in xrange(sheet.ncols): 
      if keys[col_index] not in data.keys(): 
       data[keys[col_index]] = [] 
      data[keys[col_index]].append(sheet.cell(row_index, col_index).value) 
    return data 

ответ

0

Я думаю, что вы можете сделать что-то вроде этого:

def to_dict(file_path, header_index=0, sheet_index=0): 
    result = [] 
    sheet = _read(file_path).sheet_by_index(sheet_index) 
    for row_index in xrange(2, sheet.nrows): 
     row_dict = {} 
     for col_index in xrange(sheet.ncols): 
      key = sheet.cell(header_index, col_index).value.encode("utf-8") 
      row_dict[key] = sheet.cell(row_index, col_index).value 
     result.append(row_dict) 
    return result 
Смежные вопросы