首页 > 解决方案 > 如何将数据插入包含一列的表中?

问题描述

我目前正在学习 Python 和 MySQL,如果我的表只有一列(实际上是一个自动递增的 id 和一列),我在插入数据时会遇到问题。

我尝试了几种语法,用引号和括号“玩”,几种实现 execute() 方法的方法,但没有任何效果。

这是我的声明:

import mysql.connector
db_name = "purbeurre"
list_categories = ['Drinks', 'Meat', 'Bread']
cnx = mysql.connector.connect(user='toto', password='toto', host='123.456.0.78')
cursor = cnx.cursor()
cursor.execute("USE {}".format(db_name))
insert_categories = ("INSERT INTO Categories (name) VALUES (%s)")
cursor.executemany(insert_categories, list_categories)

错误是:“ValueError:无法处理参数”

如果我添加一列,则该语句将变为该语句并且可以正常工作:

import mysql.connector
db_name = "purbeurre"
list_categories = [('Drinks', 'Liquid products'), ('Meat', 'All kind of meat', ('Bread', 'Bakery products')]
cnx = mysql.connector.connect(user='toto', password='toto', host='123.456.0.78')
cursor = cnx.cursor()
cursor.execute("USE {}".format(db_name))
insert_categories = ("INSERT INTO Categories (name, description) VALUES (%s)")
cursor.executemany(insert_categories, list_categories)

如您所见,唯一的区别是列数。

知道会发生什么吗?

标签: mysqlpython-3.x

解决方案


我收到了答案。

数据列表未正确定义,这是正确的语法:

list_categories = [('Drinks',), ('Meat',), ('Bread',)]

注意括号关闭的逗号,以确保列表中的每个元素都是元组。


推荐阅读