Mysql 使用var包含列表创建sql

Mysql 使用var包含列表创建sql,mysql,pandas,where-clause,Mysql,Pandas,Where Clause,我通过以下操作创建了一个位置列表: list_NA = [] for x in df['place']: if x and x not in list_NA: list_NA.append(x) 这给了我一个这样的列表: print(list_NA) ['DEN', 'BOS', 'DAB', 'MIB', 'SAA', 'LAB', 'NYB', 'AGA', 'QRO', 'DCC', 'PBC', 'MIC', 'MDW', 'SAB', 'LAA', 'NYA

我通过以下操作创建了一个位置列表:

list_NA = []
for x in df['place']:
    if x and x not in list_NA:
        list_NA.append(x)
这给了我一个这样的列表:

print(list_NA)

['DEN', 'BOS', 'DAB', 'MIB', 'SAA', 'LAB', 'NYB', 'AGA', 'QRO', 'DCC', 'PBC', 'MIC', 'MDW', 'SAB', 'LAA', 'NYA', 'PHL', 'DCB', 'CHA', 'CHB', 'SEB', 'AGB', 'SEC', 'DAA', 'MEX']
df2 = pd.read_sql("select airport from "+db+" where airport in "+list_NA+"", conn)
我想在where子句中使用以下列表:

print(list_NA)

['DEN', 'BOS', 'DAB', 'MIB', 'SAA', 'LAB', 'NYB', 'AGA', 'QRO', 'DCC', 'PBC', 'MIC', 'MDW', 'SAB', 'LAA', 'NYA', 'PHL', 'DCB', 'CHA', 'CHB', 'SEB', 'AGB', 'SEC', 'DAA', 'MEX']
df2 = pd.read_sql("select airport from "+db+" where airport in "+list_NA+"", conn)
但我一直在犯这样的错误:

TypeError: Can't convert 'list' object to str implicitly

我曾尝试使用str(list_NA)或tuple(list_NA),但

您需要将list_NA转换为带单引号的逗号分隔字符串

"','".join(list_NA)
但你也需要在两端用单引号括起来

df2 = pd.read_sql("select airport from "+db+" where airport in ('"+ "','".join(list_NA) +"')", conn)