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

如何用Python3通过Name过滤动态更新JSON对象并放回原数组

Python3 实现JSON数组中指定对象的定位与修改

需求说明

现有存储JSON数组字符串的变量test,需通过Name=John过滤定位对应对象(未知索引),修改该对象的字段后放回原数组对应位置。

实现步骤与代码

  1. 导入json模块:Python内置的json模块用于完成JSON字符串与Python数据结构的互相转换。
  2. 解析JSON字符串:将test字符串转换为Python列表(数组中的每个元素对应一个字典)。
  3. 定位目标对象:遍历列表,匹配Name值为John的字典。
  4. 修改目标字段:更新指定字段的值(修正原需求中Gender字段的引号缺失问题)。
  5. (可选)转回JSON字符串:将修改后的Python列表重新转为格式化的JSON字符串。

完整代码示例:

import json

# 原JSON数组字符串
test='''[
  {
    "Name": "James",
    "Mobile": 12345678,
    "Gender": "Male",
    "Boolean": true,
    "Pet": "cat"
  },
  {
    "Name": "John",
    "Mobile": 1234567875,
    "Gender": "Male",
    "Boolean": true,
    "Pet": "rat"
  },
  {
    "Name": "Jennifer",
    "Mobile": 1234567890,
    "Gender": "Female",
    "Boolean": true,
    "Pet": "Dog"
  },
  {
    "Name": "Julia",
    "Mobile": 1234567890,
    "Gender": "Female",
    "Boolean": true,
    "Pet": "Dog"
  },
  {
    "Name": "Jeff",
    "Mobile": 9871234567890,
    "Gender": "Male",
    "Boolean": true,
    "Pet": "Fish"
  },
  {
    "Name": "Jones",
    "Mobile": 79871234567890,
    "Gender": "Female",
    "Boolean": true,
    "Pet": "Parrot"
  }
]'''

# 解析JSON字符串为Python列表
data = json.loads(test)

# 遍历找到目标对象并修改
for item in data:
    if item["Name"] == "John":
        item["Name"] = "Sarah"
        item["Gender"] = "Female"
        item["Pet"] = "rabbit"
        # 找到目标后终止循环,避免无效遍历
        break

# (可选)将修改后的列表转回格式化的JSON字符串
updated_test = json.dumps(data, indent=2)
print(updated_test)

关键说明

  • json.loads():将JSON字符串解析为可直接操作的Python列表/字典,修改操作直接作用于原列表中的元素,无需额外处理位置。
  • 遍历匹配时,找到目标对象后使用break退出循环,提升执行效率。
  • json.dumps()的indent=2参数用于生成格式化的JSON字符串,便于阅读。

内容的提问来源于stack exchange,提问作者devops-admin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 03:07:04