You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何将嵌套列表数据写入MySQL生成对应数据表

Python嵌套列表写入MySQL实现方案

首先修正你原始代码的问题:示例中的姓名是字符串值,必须加引号,否则Python会将其识别为未定义变量抛出错误,修正后的数据结构如下:

attr = [
    ["Bob", 5.6, 140, 45],
    ["Jay", 5.8, 150, 33],
    ["Joe", 6.2, 180, 25]
]

前置准备

先安装Python操作MySQL的依赖库,执行命令:

pip install pymysql

完整实现代码

代码逻辑包含连接MySQL、创建目标数据表、批量插入嵌套列表数据全流程,注意将连接配置中的数据库地址、账号、密码、库名替换为你自己的环境参数:

import pymysql

# 1. 建立数据库连接
conn = pymysql.connect(
    host="127.0.0.1",  # 替换为你的MySQL地址
    user="root",       # 替换为你的MySQL账号
    password="your_password", # 替换为你的MySQL密码
    database="test_db",# 替换为要写入的数据库名,需要提前手动创建
    charset="utf8mb4"
)
cursor = conn.cursor()

# 2. 执行建表语句,表已存在时自动跳过
create_table_sql = """
CREATE TABLE IF NOT EXISTS person_attr (
    id INT AUTO_INCREMENT PRIMARY KEY,
    Name VARCHAR(32) NOT NULL,
    Height FLOAT NOT NULL,
    Weight INT NOT NULL,
    Age INT NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
"""
cursor.execute(create_table_sql)

# 3. 批量插入嵌套列表数据,使用参数化占位符,禁止直接拼接SQL语句
insert_sql = "INSERT INTO person_attr (Name, Height, Weight, Age) VALUES (%s, %s, %s, %s)"
# executemany会自动遍历嵌套列表,将每个子列表的元素按顺序匹配占位符
cursor.executemany(insert_sql, attr)

# 4. 提交事务,必须执行否则数据不会真正写入数据库
conn.commit()

# 5. 释放资源关闭连接
cursor.close()
conn.close()

关键注意点

  • 插入时统一用%s作为占位符,不需要区分字段的数字/字符串类型,pymysql会自动做类型适配和转义,能有效避免SQL注入风险,不要手动把列表值拼接到SQL字符串中。
  • 用executemany()方法批量处理嵌套列表,比循环单条执行INSERT语句的效率高很多,传入的嵌套列表每个子列表的元素顺序,要和INSERT语句里声明的字段顺序一一对应。
  • 所有写操作执行完必须调用conn.commit()提交事务,否则操作不会真正落到数据库中。

内容的提问来源于stack exchange,提问作者Umesh Shreeman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 12:54:31