Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否重复使用%s占位符而不复制变量?_Python_Mysql_Python 3.x_String Formatting - Fatal编程技术网

Python 是否重复使用%s占位符而不复制变量?

Python 是否重复使用%s占位符而不复制变量?,python,mysql,python-3.x,string-formatting,Python,Mysql,Python 3.x,String Formatting,mysql版本14.14发行版5.7.19,适用于Linux(x86_64) 我正在运行一个INSERT/ON DUPLICATE KEY UPDATE查询,如下所示: query = ("INSERT INTO table SET col1 = %s, col2 = %s, col3 = %s ON DUPLICATE KEY UPDATE col2 = %s, col3 = %s") cursor.execute(insert_post, (var1, var2, var3, var2, v

mysql版本14.14发行版5.7.19,适用于Linux(x86_64)

我正在运行一个
INSERT/ON DUPLICATE KEY UPDATE
查询,如下所示:

query = ("INSERT INTO table SET col1 = %s, col2 = %s, col3 = %s ON DUPLICATE KEY UPDATE col2 = %s, col3 = %s")
cursor.execute(insert_post, (var1, var2, var3, var2, var3,))

有没有一种方法可以在不重复使用我的
cursor.execute()
函数中的每个变量的情况下执行此操作,或者我最好使用
format()
进行字符串格式化?

IIUC,使用命名的格式化程序并将
dict
作为第二个参数传递

query = ("""INSERT INTO table 
            SET col1 = %(var1)s, 
                col2 = %(var2)s, 
                col3 = %(var3)s 
            ON DUPLICATE KEY UPDATE col2 = %(var2)s, 
                                    col3 = %(var3)s""")
cursor.execute(insert_post, {'var1' : var1, 'var2' : var2, 'var3' : var3})

您使用的是什么数据库?