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

Python 3.7.9中如何在JSON字典指定位置插入字段而非追加

在Python 3.7.9中指定位置插入JSON字段

Python 3.7及以上版本的字典默认保持插入顺序,但直接通过video['fn2'] =7新增字段时,会将其追加到字典末尾。要在fn字段后插入fn2,需要重新构建字典来调整键的顺序。

修改后的代码

import json

# 读取JSON文件
with open('myjson.json', encoding="utf-8-sig") as json_file:
    data = json.load(json_file)
    for video in data:
        if "fn" not in video:
            # 若不存在fn字段,直接追加(可按需调整逻辑)
            video['fn2'] = 7
            continue
            
        # 获取原字典的键列表
        keys = list(video.keys())
        # 定位fn字段的位置
        fn_pos = keys.index("fn")
        
        # 构建新字典,按指定顺序排列键值对
        new_video = {}
        # 加入fn及之前的字段
        for key in keys[:fn_pos + 1]:
            new_video[key] = video[key]
        # 插入fn2字段
        new_video['fn2'] = 7
        # 加入fn之后的剩余字段
        for key in keys[fn_pos + 1:]:
            new_video[key] = video[key]
            
        # 替换原字典内容
        video.clear()
        video.update(new_video)

# 写入处理后的JSON文件
with open('output.json', 'w', encoding='utf-8-sig') as outfile:
    json.dump(data, outfile, indent=4, ensure_ascii=False)

效果验证

处理你提供的原始JSON:

[
    {
        "fn": "f1.txt",
        "post": "11",
        "tp": "z"
    }
]

会生成期望的输出:

[
    {
        "fn": "f1.txt",
        "fn2": 7,
        "post": "11",
        "tp": "z"
    }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 21:17:55