在python psycopg2中定义更新查询中的参数

2024-06-02 05:41:18 发布

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

这是我的python代码,用于从读取csv文件执行更新操作。我也试过使用this。这没用。在

for i  in cin:
    try:
        conn=psycopg2.connect("dbname=pharmaflare user=postgres")
        cursor=conn.cursor()
        cursor.execute("UPDATE pharmaflare_drug_interaction SET se_interaction ='%s' WHERE primary_drug ='%s' AND secondary_drug ='%s' AND side_effect ='%s'"%(i[3],i[0],i[1],i[2]))
        conn.commit()
        cursor.close()
        conn.close()
        #print "done",i[0],i[1],i[2],i[3]
    except Exception as e:
        cerr.writerow(i)
        ferr.flush()
        traceback.print_exc(file=sys.stdout)
        continue

在这里,我面临着由于引用的问题而导致的异常语法错误: 无论单引号出现在哪里,都会出现这种例外情况。在

^{pr2}$

有没有其他方法可以用来定义查询语句而不必担心引号问题?在


Tags: and文件csv代码inforclosethis
1条回答
网友
1楼 · 发布于 2024-06-02 05:41:18

有几种方法可以解决这个问题。最简单的方法是使用re.escape() function。这个函数可以被认为是PHP's addslashes() function的等价物,尽管我很难做这样的比较。在

话虽如此,我的阅读表明psycopg2利用了PEP 249。如果这是真的,那么您应该能够传入参数化查询并拥有它escape them for you。在

相关问题 更多 >