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

如何用Python Django按列批量插入多列表数据至数据库

解决多列表按列插入数据库的问题

问题原因

你用了三层嵌套循环,这会把三个列表的所有元素做笛卡尔积组合,生成5×5×5=125条数据,自然和预期的5条记录不符。三个列表的元素是一一对应的,应该按索引配对,而不是全组合。

正确代码

用zip()函数把三个列表打包,每次循环取一组对应位置的元素:

discount = ['PWD','Senior Citizen','OPD','Corporators','Special']
discount_percentage = ['20','20','6','20','']
fixed_amount = [False,False,False,False,True] 

# 用zip打包三个列表,循环取出每组对应元素
for dis, per, fix in zip(discount, discount_percentage, fixed_amount):
    # 若数据库percentage字段为数值类型,可将空字符串转为None适配字段要求
    # per = int(per) if per else None
    discount_val = Discounts(name=dis, percentage=per, is_fixed_amount=fix)
    discount_val.save()

补充说明

  • zip()会将三个列表中索引相同的元素打包成元组,比如第一个元组是('PWD', '20', False),正好对应你要插入的第一条记录。
  • 如果数据库的percentage字段是数值类型(如INT/DECIMAL),需要把空字符串转为None或0,避免类型错误,可启用代码中注释的转换逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 20:37:01