Python Django cursor.executemany参数
我使用Django cursor.execuremany已经有一段时间了,我想做一些清理工作 在这个Stackoverflow页面上,我读到使用字符串格式操作符并使用问号是个坏主意。 但是,当我在程序中使用此选项时,会出现一个错误:Python Django cursor.executemany参数,python,mysql,django,Python,Mysql,Django,我使用Django cursor.execuremany已经有一段时间了,我想做一些清理工作 在这个Stackoverflow页面上,我读到使用字符串格式操作符并使用问号是个坏主意。 但是,当我在程序中使用此选项时,会出现一个错误: TypeError: not all arguments converted during string formatting 这是我写的代码: from django.db import connection values = ((1, "john"), (
TypeError: not all arguments converted during string formatting
这是我写的代码:
from django.db import connection
values = ((1, "john"), (2, "robert"), (3, "angela"))
cursor = connection.cursor()
query = "REPLACE INTO names (id, name) VALUES (?, ?)"
cursor.executemany(query, values)
当我仅将?
替换为%s
时,它会按预期工作
另一件事(让我开始搜索)是PyCharm在使用%s
时给了我一个错误
<expression> expedted, got %
expedted,获得%
这不是主要的问题,但我不确定这是否会产生影响
我用的是什么
- Python 2.7
- Django 1.4
- MySql
?
占位符仅用于:
将?
作为占位符放置在要使用值的任何位置,然后提供一个值元组作为游标的execute()
方法的第二个参数。(其他数据库模块可能使用不同的占位符,例如%s
或:1
)
MySQL驱动程序希望看到%s
作为查询参数占位符:
query = "REPLACE INTO names (id, name) VALUES (%s, %s)"
cursor.executemany(query, values)
另一件事(让我开始搜索)是PyCharm在使用%s时给了我一个错误 PyCharm不会对我发出任何警告。你可能做了一些不同的事情:
我只是想把事情弄清楚,因为PyCharm在使用
%s
placeholder@JohanVergeer是的,当然,说到这里。谢谢。@Johanverger好的,我这边的最新消息。希望这能帮上忙。我终于摆脱了这个错误。感谢这篇文章