Python 使用psycopg2将值从pandas系列传递到PostgreSQL查询

Python 使用psycopg2将值从pandas系列传递到PostgreSQL查询,python,postgresql,pandas,psycopg2,Python,Postgresql,Pandas,Psycopg2,我在数据框中有一列,其中包含我希望从查询返回的记录的ID 这就是我到目前为止所做的: query = """select * from frames where recording_id in (%d) """ % (data['recording_id'].values) mydata = pandas.read_sql(query, db_conn) 这将返回一个类型错误: TypeError: %d format: a number is required, not numpy.ndar

我在数据框中有一列,其中包含我希望从查询返回的记录的ID

这就是我到目前为止所做的:

query = """select * from frames where recording_id in (%d) """ % (data['recording_id'].values)
mydata = pandas.read_sql(query, db_conn)
这将返回一个类型错误:

TypeError: %d format: a number is required, not numpy.ndarray
因此,我也尝试使用
.tolist()
而不是
,但我有同样的问题


传递这些值的正确方法是什么?

多亏了杰克和一些谷歌搜索,我终于想出了一个解决方案:

query = """select * from frames where recording_id in (%d) """ % (','.join([str(i) for i in data['recording_id']]))

“,”.join(list(data[“recording_id”])
@JackManey很抱歉,但我不知道如何使用您的评论来帮助我:(您希望列中的元素列表以逗号分隔。这就是您得到它的方式:via
,”。join
@JackManey我想我理解。我得到一个类型错误:
TypeError:sequence item 0:expected string,numpy.int64 find
,但我想我能找到这个问题。据我所知,这很容易受到SQL注入的攻击。