Python Django cursor.executemany参数

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"), (

我使用Django cursor.execuremany已经有一段时间了,我想做一些清理工作

在这个Stackoverflow页面上,我读到使用字符串格式操作符并使用问号是个坏主意。

但是,当我在程序中使用此选项时,会出现一个错误:

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
我什么时候才换的?使用%s,它将按预期工作

占位符仅用于:

作为占位符放置在要使用值的任何位置,然后提供一个值元组作为游标的
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好的,我这边的最新消息。希望这能帮上忙。我终于摆脱了这个错误。感谢这篇文章