我有以下的MySQL + Python代码:Python的MySQL的语法错误 - 重复密钥更新
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)
我不知道如何正确使用对重复密钥更新,而无需重新指定所有这些值... < < < --- 这是主要的问题。
我已阅读以下内容:LINK TO PREVIOUS EXAMPLE但是我不想依赖KEY UPDATE col1 = VALUES(col1),因为在我的脚本的另一部分中,我有太多的列要保留作为col =每列值...
谢谢!
而不是'(insert_values,insert_values))',尝试'insert_values * 2'。 – Blender
[MySQLConverter'对象没有属性'_tuple_to_mysql'异常与mysql连接器](http://stackoverflow.com/questions/35910023/mysqlconverter-object-has-no-attribute-tuple-to-mysql-exception-with- mysql-c) –