Финал, приходит время записать все мои данные, которые у меня есть в списках, в файл excel.Ситуация такова:
У меня есть несколько случайных списков, и один список имеет следующую форму:
[[('visible', 2.5, 3.1, 'food')], [(«скрыто», 2.1, нет, нет), («скрыто», 5.2, 3.1, нет), .....], [], ........]
Это кортежи внутри списка, которые внутри другого списка.
Мой код проверит 3 основных условия и напишет что-нибудь в excel.Я сделал приведенный ниже код, и похоже, что он работает до else условие (пока не уверен, что условие elif работает на 100%).
- очевидно, я пытаюсь получить данные внутри этого сложного спискас неэффективным способом
def write_captions_to_excel_file(self, randomlistone, randomlisttwo, comparelists):
print('writing to excel')
workbook = Workbook(os.path.join(description_path, 'all_captions.xlsx'))
worksheet = workbook.add_worksheet()
row = 0
worksheet.write(row, 0, 'Images') # 3 --> row number, column number, value
worksheet.write(row, 1, 'Title')
worksheet.write(row, 2, 'Market')
worksheet.write(row, 3, 'Price')
worksheet.write(row, 4, 'Offer')
worksheet.write(row, 5, 'Info')
worksheet.write(row, 6, 'Visibility')
worksheet.write(row, 7, 'Group Id')
row += 1
for index, comparelist in enumerate(comparelists):
if len(comparelist) == 0: # examble [...[].....]
pass
elif len(comparelist) == 1: # examble [[('nana', 2.3, 3.3, 'gift')]]
worksheet.write(row, 0, randomlistone[index]) # 3 --> row number, column number, value
worksheet.write(row, 1, randomlisttwo[index])
worksheet.write(row, 2, comparelist[0][0]) # write nana
worksheet.write(row, 3, comparelist[0][1]) # write 2.3
worksheet.write(row, 6, 'visible'))
if comparelist[0][2] is not None: # check if 3.3 exist
worksheet.write(row, 4, comparelist[0][2]) # write 3.3
worksheet.write(row, 5, comparelist[0][3]) # write gift
row += 1
else:
worksheet.write(row, 0, randomlistone[index]) # 3 --> row number, column number, value
worksheet.write(row, 1, randomlisttwo[index])
worksheet.write(row, 6, 'visible'))
worksheet.write(row, 7, 'grouped' + str(index))
for x[2] in comparelist:
if x[2] is not None: # check if data exist in some tuple of the mindle list
worksheet.write(row, 5, x[3])
pass
row += 1
for y in comparelist: # examble [[('nana', 2.3, 3.3, 'gift'),('nano', 5.3, 4.3, None),.....('nani', 2.1, 0.9, 'cart')]]
worksheet.write(row, 0, randomlistone[index]) # 3 --> row number, column number, value
worksheet.write(row, 1, randomlisttwo[index])
worksheet.write(row, 2, y[0])
worksheet.write(row, 3, y[1])
worksheet.write(row, 6, 'hidden'))
worksheet.write(row, 7, 'simple')
if comparelist[2] is not None:
worksheet.write(row, 4, y[2])
worksheet.write(row, 5, y[3])
row += 1
workbook.close()
Буду признателен за любую помощь, Спасибо