gpt4 book ai didi

python mysql update function from tuple问题,我再次需要你的帮助

转载 作者:可可西里 更新时间:2023-11-01 07:58:59 25 4
gpt4 key购买 nike

我想更新数据库中十分之一的条目。我的想法如下,不幸的是,我得到以下错误。

我尝试转换为字符串,但它不起作用。

有什么想法吗?

类型错误:必须是字符串或只读缓冲区,而不是元组

lookup={
'Gigi':'Gigi Hofleitner',
'Horst':'Horst Sergio'
}

for i in lookup:
sql="UPDATE namen SET Name = '%s' WHERE `Name` = '%s'",((lookup[i]),i)
cursor.execute(sql)
connection.commit()

最佳答案

cursor.execute()需要一个 sql 语句(作为字符串)和一个可选的值序列,所以它应该是:

# this build a (statement, (values,....)) tuple
args = "UPDATE namen SET Name = '%s' WHERE `Name` = '%s'",(lookup[i],i)

# so you need positional arguments unpacking:
cursor.execute(*args)

sql = "UPDATE namen SET Name = '%s' WHERE `Name` = '%s'"
cursor.execute(sql, (lookup[i],i))

对于经过清理和更具可读性的版本:

lookup={
'Gigi':'Gigi Hofleitner',
'Horst':'Horst Sergio'
}

# no need to create the same invariant string again and agin
sql="UPDATE namen SET Name=%s WHERE Name=%s"

for oldname, newname in lookup.items():
cursor.execute(sql, (newname, oldname))

# better to commit only once
connection.commit()

关于python mysql update function from tuple问题,我再次需要你的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20162483/

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