Как динамически читать значения из столбцов листа Excel в PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как динамически читать значения из столбцов листа Excel в Python

Сообщение Anonymous »

Я работаю над проектом, в котором считываю данные из листа Excel и загружаю их в API. Одна из проблем здесь заключается в том, что данные внутри листа не являются фиксированными. Это означает, что, скажем, вес атрибута находился в столбце 5, но позже он может переместиться в столбец 7. Допустим, ниже приведен лист Excel:

Код: Выделить всё

Name    Age     Gender      Weight      Category
xyz     20      M           76          A
abc     21      M           72          A
pqr     22      M           77          B
Допустим, возраст — это столбец 1. Но позже в некоторых других файлах он может быть в столбце 4. Поэтому мне нужно написать скрипт, который может принимать динамические столбцы и, соответственно, извлекать их данные и загружать их в API.
Ниже данные JSON, которые мне нужно загрузить:

Код: Выделить всё

{
"full_name":
"gender":
"age":
"total_weight":
"category":
}
Для этого я изначально думал, что при обработке листа Excel я сначала извлеку заголовки (имена столбцов), чтобы знать, в каком атрибуте столбца присутствует. Итак, для этого я сделал:

Код: Выделить всё

import xlrd

mop_workbook = xlrd.open_workbook(mo_file_path)
mop_sheet = mop_workbook.sheet_by_index(0)

attr_list = []
for i in range(mop_sheet.ncols):
attr_dict = dict()
attr_dict['attribute'] = mop_sheet.cell_value(0, i)
attr_dict['col_no'] = i
attr_list.append(attr_dict)
Теперь attr_list содержит:

Код: Выделить всё

[
{
"attribute": "Name",
"col_no": 0
},

"attribute": "Age",
"col_no": 1
},

"attribute": "Gender",
"col_no": 2
},

"attribute": "Weight",
"col_no": 3
},

"attribute": "Category",
"col_no": 4
},

]
Теперь, имея приведенные выше данные, я знаю, какой атрибут в каком столбце находится. Поэтому даже в будущем, если столбец атрибута изменится, я не буду беспокоиться, поскольку у меня есть новый col_no в приведенном выше списке dict. После этого мне просто пришлось использовать атрибут col_no, и здесь я запутался. Ниже приведен фрагмент кода того, как я обычно извлекаю значение ячейки:

Код: Выделить всё

for row in range(total_row):
if row != 0:   # skipping the 0th row of headers
data = dict()

data['full_name'] = str(mop_sheet.cell_value(row, 0))
Теперь в приведенном выше коде вместо 0 в str(mop_sheet.cell_value(row, 0)) мне нужно применить номер столбца из список слов, которые я создал, но не понимаю, как его использовать. Что мне попробовать дальше?

Подробнее здесь: https://stackoverflow.com/questions/692 ... -in-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»