executemany() 恰好接受 3 个参数(给定 2 个)—— mysql 和 Python
executemany() takes exactly 3 arguments (2 given) -- mysql with Python
字段是 => [u'sender', u'timestamp', u'number', u'mms', u'datetime', u'text', u'id']
dataList is => [(False, 1475565742761L, u'VM-449100', False, u'2016-10-04 12:52:22 GMT+05:30', u'Some text here',第1276章)]
cursor = connection.cursor()
query = """INSERT INTO messages """+str(tuple(fields))+""" VALUES (%s, %s, %s, %s, %s, %s, %s) """,dataList
cursor.executemany(query)
执行上述代码时出现错误 => executemany() 恰好需要 3 个参数(给定 2 个)
sql 查询和参数应作为单个参数传递。您目前正在传递一个元组。我会将其更改为:
cursor = connection.cursor()
query = """INSERT INTO messages (""" + ",".join(fields) + """) VALUES (%s, %s, %s, %s, %s, %s, %s) """
cursor.executemany(query, dataList)
请注意,query
现在是一个字符串,我已使用 join
将字段列表转换为逗号分隔的字符串。如果您使用 str(tuple(fields))
,您可能会得到不需要的 u''
前缀。
字段是 => [u'sender', u'timestamp', u'number', u'mms', u'datetime', u'text', u'id']
dataList is => [(False, 1475565742761L, u'VM-449100', False, u'2016-10-04 12:52:22 GMT+05:30', u'Some text here',第1276章)]
cursor = connection.cursor()
query = """INSERT INTO messages """+str(tuple(fields))+""" VALUES (%s, %s, %s, %s, %s, %s, %s) """,dataList
cursor.executemany(query)
执行上述代码时出现错误 => executemany() 恰好需要 3 个参数(给定 2 个)
sql 查询和参数应作为单个参数传递。您目前正在传递一个元组。我会将其更改为:
cursor = connection.cursor()
query = """INSERT INTO messages (""" + ",".join(fields) + """) VALUES (%s, %s, %s, %s, %s, %s, %s) """
cursor.executemany(query, dataList)
请注意,query
现在是一个字符串,我已使用 join
将字段列表转换为逗号分隔的字符串。如果您使用 str(tuple(fields))
,您可能会得到不需要的 u''
前缀。