【问题标题】:How can I use a Python List in a SQL Where IN Clause?如何在 SQL Where IN 子句中使用 Python 列表?
【发布时间】:2022-01-02 20:52:01
【问题描述】:
我有一个包含几列和 800 条记录的 CSV 文件,其中一列是我需要在 SQL 查询中过滤的变量。
_
我曾考虑将 CSV 作为数据框读取,->
然后从那个 DF 中获取一个列表,->
然后使用WHERE X IN (List[0]','List[1]','[List[2']....)中的列表
_
如何用 Python 做到这一点?
谢谢
【问题讨论】:
标签:
python
sql
pandas
where-clause
【解决方案1】:
感谢@wilian,但我的意思是我怎么能用 python 做到这一点,因为我不知道,除了要使用哪个库
我想出了一个办法:
将我的 csv 文件导入数据框
df = pd.read_csv(path)
然后我列出了我需要的列
list = df['list'].tolist()
然后我把那个列表变成了一个字符串
list1 = """' , '""".join([str(item) for item in list])
list2 = "'" + list1[:] + "'" + list1[0:0]
需要这样做,因为 SQL Where X IN ('') 子句需要用 ' 和逗号编写
然后我得到一个这样的字符串
list2 = 'a','b','c'
然后我使用 f'string 使用 pandas 的 read_sql
query = f"SELECT * FROM table WHERE X IN ({list2})"
result = pd.read_sql(query,conn)