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

如何将Python异步API返回数据转列表并写入MySQL数据库?

解决方案:DataFrame转列表+MySQL批量插入

1. 将DataFrame转换为列表MyList

针对你的table(DataFrame格式),可以用两种常用方式转换为适合MySQL插入的列表格式:

  • 方式一:转成元组列表(MySQL插入参数的标准格式)
# 排除DataFrame索引,将每行数据转为元组,最终得到元组组成的列表
MyList = [tuple(row) for row in table.to_records(index=False)]
  • 方式二:转成列表嵌套格式
# 直接提取DataFrame的数值部分,转为列表的列表,同样排除索引列
MyList = table.values.tolist()

注意:如果DataFrame包含日期、JSON等特殊类型数据,提前将其转换为MySQL兼容的格式(比如日期转字符串、JSON转序列化字符串)

2. 使用mysql.connector插入数据到MySQL

先安装依赖

pip install mysql-connector-python pandas

实现代码

import mysql.connector
from mysql.connector import Error

def insert_data_to_mysql(data_list, target_table):
    # 替换为你的数据库实际配置
    db_config = {
        'user': 'your_username',
        'password': 'your_password',
        'host': 'localhost',
        'database': 'your_db_name',
        'raise_on_warnings': True
    }

    conn = None
    cursor = None
    try:
        # 建立数据库连接
        conn = mysql.connector.connect(**db_config)
        if conn.is_connected():
            cursor = conn.cursor()
            # 构造插入语句:根据数据列数生成对应数量的占位符%s
            col_num = len(data_list[0])
            insert_sql = f"INSERT INTO {target_table} VALUES ({', '.join(['%s'] * col_num)})"
            
            # 批量插入数据(比单行插入效率高)
            cursor.executemany(insert_sql, data_list)
            conn.commit()
            print(f"成功插入 {cursor.rowcount} 条记录")

    except Error as err:
        print(f"数据库操作出错: {err}")
        if conn:
            conn.rollback()
    finally:
        # 确保关闭连接和游标
        if cursor:
            cursor.close()
        if conn and conn.is_connected():
            conn.close()
            print("数据库连接已关闭")

# 调用示例:传入转换好的列表和目标表名
insert_data_to_mysql(MyList, "your_target_table")

*注意事项:

  • 必须确保目标MySQL表的结构(列顺序、数据类型)和DataFrame完全匹配,否则会插入失败
  • 批量插入优先用executemany,避免循环调用execute导致性能问题
  • 不要硬编码数据库账号密码,正式环境建议用配置文件或环境变量管理*

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 04:52:11