我在python中有列表,我已经将此列表转换为oracle sql列表以进行sql查询,但存在错误列表中的最大表达式数为1000,我想将此列表转化为元组,以便解决此错误。这个列表随随机数的变化而变化。
MY代码
# convert column to list
samples_numbers = samples.loc[:, "cut_num"].values.tolist()
# convert python list to sql list
sqllist = str(samples_numbers)
sqllist = sqllist.replace("[", "(").replace("]", ")")
# statment to make query read from list
statment = "select from sample_table where data in" + sqllist
result = pd.read_sql_query(statement, engine)
我希望我的代码而不是从(50050750075008,…,100000(中的数据为的示例表中选择((500,0(,(507,0(、(5007,0(,(5008,0(,…中的数据,。。。。,(100000,0((以避免列表中表达式的最大数量为1000
错误消息sqlalchemy.exc.DatabaseError:(cx_Oracle.DatabaseError(ORA-01795:列表中的最大表达式数为1000
使用此生成list
后
samples_numbers = samples.loc[:, "cut_num"].values.tolist()
您可以创建空列表的变量sqlite
,然后根据条件(504,0),(507,0)....(100000,0)
创建该列表的每个值append
sqllist = []
for each in samples_numbers:
sqllist.append((each, 0))
然后,您可以使用以下方法将sqlite
类型转换为tuple
:
sqllist = tuple(sqllist)
输出
print(sqlite)
((500, 0), (507, 0), ..., (100000, 0))