Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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 MySQL语法错误-重复密钥更新_Python_Mysql - Fatal编程技术网

Python MySQL语法错误-重复密钥更新

Python MySQL语法错误-重复密钥更新,python,mysql,Python,Mysql,我有以下MySQL+Python代码: data = json.loads(decoded_response) insert_values = [] cursor = cnx.cursor() add_data = """INSERT INTO pb_ya_camps (camp_id,camp_name) VALUES (%s,%s) ON DUPLICATE KEY UPDATE VALUES (%s,%s)""" for jsonData in data["data"]:

我有以下MySQL+Python代码:

data = json.loads(decoded_response)

insert_values = []
cursor = cnx.cursor()
add_data = """INSERT INTO pb_ya_camps (camp_id,camp_name) VALUES (%s,%s) ON DUPLICATE KEY UPDATE VALUES (%s,%s)"""

for jsonData in data["data"]:
        if "No" in jsonData["StatusArchive"]:
                print("...processing campaign ",jsonData["Name"],"into the database.")
                insert_values.append((jsonData["CampaignID"],jsonData["Name"]))

try:
        cursor.executemany(add_data,(insert_values,insert_values))
此时会产生以下错误:

MYSQL ERROR: Failed processing format-parameters; 'MySQLConverter' object has no attribute '_tuple_to_mysql'
据我所知,它不喜欢以下内容:

cursor.executemany(add_data,(insert_values,insert_values))
我相信你不能用Python做到这一点……但我的问题可能源于不正确的MySQL语法。你能看一下吗

INSERT INTO pb_ya_camps (camp_id,camp_name) VALUES (%s,%s) ON DUPLICATE KEY UPDATE VALUES (%s,%s)

我不知道如何在不重新指定所有值的情况下正确使用重复密钥更新 下面是MySQL参考手册,
INSERT的MySQL语法。。。重复密钥更新时
为:

INSERT INTO table (`a`, `b`, `c`) 
VALUES (1, 2, 3)
    ON DUPLICATE KEY UPDATE `c` = `c` + 1;
因此,在您的情况下(请注意,写入
camp\u id=%s
camp\u id=value(%s)
是相同的:

INSERT INTO `pb_ya_camps` (`camp_id`, `camp_name`) 
VALUES (%s,%s) 
    ON DUPLICATE KEY UPDATE `camp_id` = VALUES(%s), `camp_name` = VALUES(%s)

有关语法的详细信息,请参见。

而不是
(插入\u值,插入\u值))
,尝试
插入\u值*2
。谢谢!因此,对于我要更新的每一列,我都要指定:“column\u name=value”?