Как можно оптимизировать код для парсинга из xmlx в класс Python

Рейтинг: 0Ответов: 1Опубликовано: 18.02.2023

У меня в xmlx файле 5000 строк с 70 столбцами данных и их всех нужно перенести на экземпляры класса. Сделал так, но слишком долго

from data import data
import openpyxl as xl

book = xl.open("studRl.xlsx",read_only = True)

#sheet = ячейка, строка начинаются с 1 строки с 0
sheet = book.active
print(sheet[1][0].value)
dates = list()
objects = list()


for row in range(2, 4860 ):
    objects.clear()
    for column in range(0,71):

        objects.append(sheet[row][column].value)
    dates.append(data(objects[0], objects[1], objects[2], objects[3], objects[4], objects[5], objects[6], objects[7], objects[8], objects[9], 
                      objects[10], objects[11], objects[12], objects[13], objects[14], objects[15], objects[16], objects[17], objects[18], objects[19], 
                      objects[20], objects[21], objects[22], objects[23], objects[24], objects[25], objects[26], objects[27], objects[28], objects[29], 
                      objects[30], objects[31], objects[32], objects[33], objects[34], objects[35], objects[36], objects[37], objects[38], objects[39], 
                      objects[40], objects[41], objects[42], objects[43], objects[44], objects[45], objects[46], objects[47], objects[48], objects[49], 
                      objects[50], objects[51], objects[52], objects[53], objects[54], objects[55], objects[56], objects[57], objects[58], objects[59],
                      objects[60], objects[61], objects[62], objects[63], objects[64], objects[65], objects[66], objects[67], objects[68], objects[69],
                      objects[70]))

Ответы

▲ 0

Вы можете например использовать генератор списка:

dates = [data(*[sheet[row][column].value for column in range(0, 71)]) for row in range(2, 4860)]