У вас была ошибка в вашем состоянии.В операторе while вы проверяете, есть ли значение в «A1».Поскольку там всегда есть значение, цикл бесконечен.Это работает
import openpyxl
file = openpyxl.load_workbook('peopleList.xlsx')
sheet = file.active
person = {}
people = []
for reader in np.arange(1,len(sheet['A'])+1):
person["name"] = sheet["A" + str(reader)].value
person["gender"] = sheet["B" + str(reader)].value
person["school"] = sheet["C" + str(reader)].value
person["ch1"] = sheet["D" + str(reader)].value
person["ch2"] = sheet["E" + str(reader)].value
person["ch3"] = sheet["F" + str(reader)].value
people.append(person)
person = {}
print(people)
Это важная строка:
for reader in np.arange(1,len(sheet['A'])+1):
Это также может быть сделано с помощью оператора while, но вы с гораздо меньшей вероятностью получите бесконечный цикл вдля цикла, поэтому я нахожу их более явными во многих случаях.То, что я делаю здесь, - это подсчет длины столбца A (при условии, что он такой же, как и у других столбцов, а затем просмотр списка чисел [1,2,3,...,len(A)]
путем создания этого списка с np.arange(len(A))
.