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
相关产品推荐
相关产品推荐

