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

如何从JSON文件中拆分出车辆信息字典与罚单信息字典?

拆分车辆与罚单信息为独立字典

没问题,我来帮你完成这个字典拆分的需求。这里有两种常见的实现方式,你可以根据自己的使用场景选择:

方案一:用字典按车牌索引(快速检索)

这种方式适合你需要通过车牌快速查找对应车辆或罚单的场景,我们以车牌plate作为字典的键:

import json

# 读取JSON文件数据
with open('jsonfile', 'r') as data:
    cars_dict = json.load(data)

# 初始化两个空字典,分别存储车辆和罚单信息
vehicles = {}
tickets = {}

# 遍历每一辆车的数据
for car in cars_dict['cars']:
    plate = car['plate']
    # 存入车辆信息:键为车牌,值为车型
    vehicles[plate] = car['model']
    
    # 处理当前车辆的所有罚单,关联车牌后存入字典
    car_tickets = car['tickets']
    # 给每个罚单添加车牌字段,方便后续关联
    for ticket in car_tickets:
        ticket['plate'] = plate
    
    # 同一车牌的罚单合并到列表中
    if plate in tickets:
        tickets[plate].extend(car_tickets)
    else:
        tickets[plate] = car_tickets

说明:

  • vehicles字典:键是车牌,值是对应车型。如果你的数据存在同一车牌对应多辆不同车型的情况,可以把值改成列表(比如vehicles.setdefault(plate, []).append(car['model']))来保留所有信息。
  • tickets字典:键是车牌,值是该车牌对应的所有罚单列表,每个罚单都额外携带了plate字段,方便单独查看时溯源。

方案二:用列表存储(保持顺序/直观)

如果不需要快速检索,只是想把两类信息拆分成独立的列表集合,这种方式更直观:

import json

with open('jsonfile', 'r') as data:
    cars_dict = json.load(data)

# 初始化两个空列表
vehicles_list = []
tickets_list = []

for car in cars_dict['cars']:
    # 构建仅含车辆基本信息的字典(排除tickets字段)
    vehicle_info = {k: v for k, v in car.items() if k != 'tickets'}
    vehicles_list.append(vehicle_info)
    
    # 处理罚单:复制罚单并添加车牌字段后加入列表
    for ticket in car['tickets']:
        ticket_with_plate = ticket.copy()
        ticket_with_plate['plate'] = car['plate']
        tickets_list.append(ticket_with_plate)

说明:

  • vehicles_list是字典列表,每个元素只包含model和plate,完全剔除了罚单相关数据。
  • tickets_list是字典列表,每个罚单条目都包含amount、type和对应的plate,可以独立使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:30:51