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

Python解析同索引列表项并批量存入MySQL数据库问题

解决同索引列表元素存入MySQL的问题

你的代码当前直接把整个列表作为参数传入SQL插入语句,这会导致参数不匹配——SQL需要的是单个的id和content值,而非整个列表。要取出两个列表同索引的元素并配对存入数据库,用zip()函数就能轻松解决。

修改后的代码

cursor = self.con.cursor()

cursor.execute("select id from news where uri = %s", (item['article_url'],))
result = cursor.fetchone()

my_list = [{'comment_code': ['1','18','2','3','4','5','6','7','8','9','10'],
        'comment_text': ['A', 'B', 'C', 'D','E','F','G','H','I','J','K']}]

for cit in my_list:
    # 用zip将两个列表的同索引元素一一配对
    for comment_id, comment_content in zip(cit["comment_code"], cit["comment_text"]):
        cursor.execute("""INSERT INTO comment (id, content) VALUES (%s, %s)""",
                       (comment_id, comment_content))
    # 批量提交,提升效率并保证一致性
    self.con.commit()

关键说明

  • zip()函数会把comment_code和comment_text中位置相同的元素打包成元组,比如第一个元组是('1', 'A'),第二个是('18', 'B'),循环时就能直接取到每一对对应的值。
  • 将commit()放在外层循环后,每次处理完所有配对元素再提交事务,比每次插入都提交更高效,也能避免部分插入成功部分失败的情况。
  • 如果你的id字段是数值类型(如DECIMAL、INT),可以把comment_id转换成对应类型,比如float(comment_id),避免数据库类型不匹配报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 18:30:41