Python 3.x 如何将带有单引号和双引号的列表值放入Postgressql Select查询

Python 3.x 如何将带有单引号和双引号的列表值放入Postgressql Select查询,python-3.x,postgresql,Python 3.x,Postgresql,我正在对postgresql数据库执行select查询,在获取这些结果之后,我将这些结果附加到列表中,然后将该列表作为另一个postgresql select查询的输入 但由于将这些值转换为列表,它将带撇号(特殊字符)cat的值转换为双引号“cat”。在执行第二个select查询时,未获取带双引号的值,因为数据库中不存在带双引号的值,而不存在带双引号的值cat 这给了我一个错误,即值不存在 我尝试了JSON转储方法,但它不起作用,因为我无法将JSON列表转换为元组,并将其作为postgresql

我正在对postgresql数据库执行select查询,在获取这些结果之后,我将这些结果附加到列表中,然后将该列表作为另一个postgresql select查询的输入

但由于将这些值转换为列表,它将带撇号(特殊字符)
cat的值转换为双引号
“cat”
。在执行第二个select查询时,未获取带双引号的值,因为数据库中不存在带双引号的值,而不存在带双引号的值
cat

这给了我一个错误,即值不存在

我尝试了JSON转储方法,但它不起作用,因为我无法将JSON列表转换为元组,并将其作为postgresql select查询的输入

select_query = """select "Unique_Shelf_Names" from "unique_shelf" where category = 'Accessory'"""
cur.execute(select_query)
count = cur.fetchall()

query_list = []
for co in count:
    for c in co:
        query_list.append(c)
查询列表的输出

query_list = ['parrot', 'dog', "leopard's", 'cat', "zebra's"]
现在,这个
querylist
被转换为tuple,并作为另一个select查询的输入

list2 = tuple(query_list)

query = """select category from  "unique_shelf" where "Unique_Shelf_Names" in {} """.format(list2)

cur.execute(query)
这就是它给我的错误
“leopard”不存在,但在数据库中leopard存在


我希望
query\u列表中的所有值都是双引号,这样就不会出现此错误。

不要使用
格式来构造查询。只需使用
%s
并将元组传递到
execute

query = """select category from  "unique_shelf" where "Unique_Shelf_Names" in %s """

cur.execute(query,(list2,))

谢谢您的回复,但列表格式不是一个好问题issue@Shubham:请尝试我在回答中提到的选项,如果不起作用,请告诉我。另外,我发布的链接清楚地提到了如何将值作为元组传递给
子句中的
。因此,如果您想使用
格式
,这意味着您使用的方法不正确。对不起,kaushik,我认为格式不是问题。非常感谢你解决了我的问题。@Shubham:不客气。我很高兴能帮上忙。