如何在Python中将数据帧作为参数传递给SQL查询?

2024-09-27 23:16:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个由一列值组成的数据帧,我想将其作为参数传递以执行以下sql查询:

query = "SELECT ValueDate, Value"\
        "FROM Table "\
        "WHERE [ID] in ( ? ) "

因此,我尝试了(在众多其他事情中)以下几点:

^{pr2}$

数据帧的正确传递方式是什么?在

注意:我使用的是microsoftsqlserver,所以查询需要像我一样格式化。在


Tags: 数据infromidsqlvalue方式table
2条回答

这能满足你的需要吗?在

import pandas as pd

your_column = pd.Series([1,2,3,4,5,6,7,8,9])

query = "SELECT ValueDate, Value"\
        "FROM Table "\
        "WHERE [ID] in {}".format(tuple(your_column))

print(query)
# 'SELECT ValueDate, ValueFROM Table WHERE [ID] in (1, 2, 3, 4, 5, 6, 7, 8, 9)'

那么您应该能够在没有进一步参数的情况下进行查询。在

^{pr2}$
params = tuple(df['ID'].values)
sql = "SELECT COUNT(*) FROM foobar WHERE id IN (%s)" % (",".join(["?"]*len(params)),)
cursor.execute(sql, params)

相关问题 更多 >

    热门问题