我有一个excel文件,我从中提取列并从中列出。可以说列表看起来像这样:
list_main = [1,2,3,4,5,6] #main list
我正在使用flask在浏览器中显示此列表。之后,我要检查列表中的项目是否存在于数据库中,如果存在,则检查它们是否有价格。
为此,我之前制作了三个列表,然后将输出返回到浏览器。之后,我认为这些项目将是重复的,因为其他两个列表只是主列表的一个子集。像这样:
sub_list1 = [1,2,4,5] # subset of mainlist
sublist2 = [1,2] # subset of sublist1
为减少所有计算和处理时间,我想制作一个字典并输出处理后的输出。像这样:
dict_main = {"1":[yes,yes], "2":[yes,yes], "3":[no,no], "4":[yes,no],...}
#output
1 yes yes
2 yes yes
3 no no
4 yes no
5 yes no
6 no no
这是我到目前为止所累的:
@app.route('/upload', methods=['GET'])
def auee():
list_main = [1,2,3,4,5,6] #list I got from excel
found = yes
def events():
for i in list_mian:
data1 = pd.read_sql("DATABASE QUERY", engine)
new_data = data1['item_id'].drop_duplicates().values.tolist()
print('\n'.join(str(p.rstrip()) for p in new_data ))
for row in new_data:
if row.rstrip() not in listset:
listset.append(row.rstrip())
yield "data: %s %s\n\n" % (i,row.rstrip())
return Response(events(), content_type='text/event-stream')
上面的程序仅打印主列表,但仅打印子列表中存在的项目,因为它位于另一个循环中。
这就是我选择词典的原因。产生字典的最有效方法是什么,即流处理后的输出。