pymysql数据插入失败 (1241, 'Operand should contain 1 column(s)')
时间: 2023-11-21 14:58:12 浏览: 384
该错误提示是由于插入数据时,SQL语句中的列数与值的数量不匹配导致的。可能是由于插入的数据中包含了列表类型的数据,需要将其转换为字符串类型。可以使用`str()`函数将列表转换为字符串,或者使用`json.dumps()`将其转换为JSON格式字符串再插入数据库。
以下是一个使用`str()`函数解决该问题的示例代码:
```python
import pymysql
# 连接数据库
conn = pymysql.connect(host='localhost', user='root', password='123456', database='test', charset='utf8mb4')
cursor = conn.cursor()
# 准备插入的数据
data = {
'name': '张三',
'age': 18,
'hobby': ['篮球', '足球', '游泳']
}
# 将列表类型的数据转换为字符串类型
data['hobby'] = str(data['hobby'])
# 插入数据
sql = "INSERT INTO students (name, age, hobby) VALUES ('%s', %d, '%s')" % (data['name'], data['age'], data['hobby'])
try:
cursor.execute(sql)
conn.commit()
print("插入成功!")
except Exception as e:
conn.rollback()
print("插入失败:", e)
# 关闭连接
conn.close()
```
阅读全文