Python:将sql查询中的列表作为参数传递

Python:将sql查询中的列表作为参数传递,python,sql,teradata,Python,Sql,Teradata,我有以下疑问: import jaydebeapi,pandas as pd cursor = conn.cursor() cursor.execute('''INSERT INTO MD SELECT DISTINCT MD FROM viewshareddim.TMD_VIP WHERE STN_ID=? AND P_T in ? AND ID in ? AND C_ID = ?''', (MD[0],MD[1],MD[2],MD[3])) 价值观是: MD = [01,(02,05,0

我有以下疑问:

import jaydebeapi,pandas as pd

cursor = conn.cursor()
cursor.execute('''INSERT INTO MD SELECT DISTINCT MD FROM viewshareddim.TMD_VIP
WHERE STN_ID=? AND P_T in ? AND ID in ? AND C_ID = ?''', (MD[0],MD[1],MD[2],MD[3]))
价值观是:

MD = [01,(02,05,06),(02,04,05),8]
尝试引用此处提供的解决方案,但未了解如何实现查询的解决方案。如能提供任何指导,将不胜感激

我试过这个:

INSERT INTO MD SELECT DISTINCT MD FROM viewshareddim.TMD_VIP
WHERE STN_ID=(?) AND P_T in (?) AND ID in (?) AND C_ID = (?), (MD[0],MD[1],MD[2],MD[3])


File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site- 
 packages/jaydebeapi/__init__.py", line 499, in execute
self._set_stmt_parms(self._prep, parameters)
File 
"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/jaydebeapi/__init__.py", line 490, in _set_stmt_parms
prep_stmt.setObject(i + 1, parameters[i])
RuntimeError: No matching overloads found for setObject in find. at 
native/common/jp_method.cpp:127

我尝试对列表进行求值,这样当它被传递到数据库时,它只是一个由DB执行的字符串

尝试在参数中的
周围加上括号<代码>和P_T in(?)和ID in(?)
我尝试了你的建议,但出现了一个错误。已经在上面的主要问题中发布了结果。您的哪些参数不起作用?另外,
C_ID=?,(MD[0],MD[1],MD[2],MD[3])
不是任何一种有效的SQL。您能提供更多产生此错误的Python代码来帮助解决这个问题吗?绝对不要这样做。查找sql注入攻击的详细信息了解原因。同意,我应该说明这一点,但是为了进行调试,它可以帮助查看如何/什么被发送到数据库。