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

如何使用Python在JSON指定位置添加新键值对

解决JSON字典指定位置插入键值对的问题

要实现把location键值对插入到Name之后的需求,核心是重新构造字典来控制键的顺序(Python 3.7及以上版本的普通字典默认保持插入顺序),具体步骤如下:

完整代码实现

import json

filename = 'test.json'
# 读取JSON文件
with open(filename, "r") as jsonFile:
    data = json.load(jsonFile)

# 取出数组中的第一个字典
original_item = data[0]
# 重新构造字典:先保留Name,再添加location,最后加入剩余的键值对
new_item = {
    'Name': original_item['Name'],
    'location': 'USA',
    **{key: value for key, value in original_item.items() if key != 'Name'}
}
# 替换原数组中的元素
data[0] = new_item

# 将修改后的数据写回JSON文件
with open(filename, "w") as jsonFile:
    json.dump(data, jsonFile, indent=2)

print(data)

代码说明

  1. 读取与解析:用with语句安全读取JSON文件,避免手动关闭文件的繁琐。
  2. 重构字典:
    • 先显式写入Name键值对;
    • 紧接着插入location: "USA";
    • 用字典推导式把原字典中除Name外的其他键值对追加进来,保证剩下的键顺序和原数据一致。
  3. 写回文件:用json.dump时指定indent=2,让输出的JSON格式和示例一致,更易读。

验证输出

执行代码后,JSON文件的内容会变为:

[
  {
    "Name": "AMAZON",
    "location": "USA",
    "Type": "Web",
    "eventTimeEpoch": 1611667194
  }
]

兼容低版本Python(3.6及以下)

如果你的Python版本低于3.7,普通字典不保证顺序,需要用collections.OrderedDict来实现:

from collections import OrderedDict
import json

filename = 'test.json'
with open(filename, "r") as jsonFile:
    data = json.load(jsonFile, object_pairs_hook=OrderedDict)

original_item = data[0]
new_item = OrderedDict()
new_item['Name'] = original_item['Name']
new_item['location'] = 'USA'
# 加入剩余键值对
for key, value in original_item.items():
    if key != 'Name':
        new_item[key] = value

data[0] = new_item

with open(filename, "w") as jsonFile:
    json.dump(data, jsonFile, indent=2)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 22:50:22