gpt4 book ai didi

python - Pymysql UPDATE with %s 引发未知错误

转载 作者:行者123 更新时间:2023-11-29 11:31:18 29 4
gpt4 key购买 nike

我尝试使用 pymysql 更新 sql 数据库中的一行。为了使整个事情更加Pythonic,我定义了要使用 %s 更新的变量和位置。这对一个变量有效,但另一个变量出现了我不明白的错误。这是我的代码:

with connection.cursor() as cursor:
#sql = "update tf_data set doi=\'"+str(DOI)+"\' where tf_data_id="+str(tf_data_id)+";"
sql = "update tf_data set doi=%(DOI)s where tf_data_id=%(data_id)s"
DOI=DOI
data_id = str(tf_data_id)
cursor.execute(sql)

连接是在脚本开头定义的,并且已经起作用。变量是:

DOI= '10.1371/journal.pone.0151666'

tf_data_id = 1
如果我执行,我认为该命令应该直接在 mysql 中执行它的工作:

update tf_data set doi='10.1371/journal.pone.0151666' where tf_data_id='1';

有人可以告诉我,这是什么问题吗?

最佳答案

你只需要

sql = "update tf_data set doi='%s' where tf_data_id='%s'" % (str(DOI), str(tf_data_id))

或者您可以使用format()方法

sql = "update tf_data set doi='{DOI}' where tf_data_id='{data_id}'".format(DOI=DOI, data_id= tf_data_id)

关于python - Pymysql UPDATE with %s 引发未知错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37378997/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com