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

Python如何复制字典填充随机值生成指定格式测试数据

问题分析
  • 引用传递错误:你直接修改原字典a中的嵌套字典和列表,Python中可变对象是引用传递,所有赋值操作最终都指向同一个内存地址,导致后续修改会覆盖之前已生成的所有数据。
  • 追加内容错误:你判断accNum存在时,往列表里append的是j[0]['accNum']字符串,不是需求要求的交易字典对象,完全不符合输出格式要求。
  • 循环逻辑错误:外层while循环套for j in a.values()遍历,但原字典a只有1个键值对,遍历逻辑冗余,计数规则也不符合生成多条数据的需求。
修复后的实现代码
import random
import copy

# 原始模板
template_a = {
  "6335050000000172": [
    {
      "accBalance": 6,
      "accNum": 6335050000000172,
      "activityCode": 440,
      "activityDate": "2021-09-27 00:00:00",
      "creditsDebits": 0,
      "displayPostage": "",
      "meterSerialNumber": 0,
      "postage": 0,
      "timeZone": "",
      "transactionDescription": "PAYMENT THANK YOU"
    }
  ]
}
# 提取交易记录模板
trans_template = list(template_a.values())[0][0]

times = ["2021-09-27 00:00:00", "2021-08-27 00:00:00","2021-07-27 00:00:00","2021-06-27 00:00:00","2021-05-27 00:00:00","2021-03-27 00:00:00"]
acc_num_list = ["6335050000000172","6335052000143333","6335051000136685","6335052030050953","6335050000000313","6335052030050185"]
transactionDescription = ['DIRECT DEBIT PAYMENT THANK YOU', 'METER REFILL', 'METER RESET', 'PAYMENT RECEIVED' ]

result = {}
# 可自行调整生成的总交易条数,这里示例生成20条
total_trans = 20

for _ in range(total_trans):
    # 深拷贝模板,生成全新的交易对象,避免引用覆盖问题
    new_trans = copy.deepcopy(trans_template)
    # 填充随机值
    new_trans['accBalance'] = random.randint(0,100)
    new_trans['transactionDescription'] = random.choice(transactionDescription)
    new_trans['accNum'] = random.choice(acc_num_list)
    new_trans['activityDate'] = random.choice(times)
    # 按accNum分类存入结果字典
    acc_num_str = str(new_trans['accNum'])
    if acc_num_str in result:
        result[acc_num_str].append(new_trans)
    else:
        result[acc_num_str] = [new_trans]

print(result)
# 写入文件逻辑可自行保留
核心改动说明
  • 提取了独立的交易记录模板,每次生成新交易时用copy.deepcopy深拷贝模板,保证所有交易对象都是独立的,不会互相覆盖。
  • 调整了分类逻辑,accNum存在时直接追加新生成的交易字典到对应列表,不存在时初始化列表。
  • 简化了循环逻辑,直接指定生成的总交易条数,按需调整即可实现n个账户键,每个键对应m条交易记录的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 08:39:01