最后,是时候将我列表中的所有数据写入Excel文件了。情况是这样的:
我有一些随机列表,一个列表的格式如下:
[[('visible',2.5,3.1,'food')],[('hidden',2.1,None,None),('hidden',5.2,3.1,None),.. ...],[],........]
是列表内的元组,另一个列表内。
我的代码将检查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()
感谢您的帮助,
答案 0 :(得分:0)
我找到了一种从List_List_tuple项中获取数据的解决方案,以下代码对我来说很好。
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 i in comparelist:
if i[2] is not None:
worksheet.write(row, 5, i[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 y[2] is not None:
worksheet.write(row, 4, y[2])
worksheet.write(row, 5, y[3])
row += 1