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

如何从含多段相似结构的JSON文件中精准检索指定数据?

从多段结构的JSON文件中检索指定数据的更优方案

你的字符串查找方法确实太脆弱了——一旦JSON里的字段顺序变了、空格数量调整了,或者ID长度不一样,代码直接就失效了。咱们用标准的JSON解析方式来解决这个问题才是正道,步骤如下:

首先,注意你的JSON内容其实是多个对象用逗号分隔,但缺少外层的数组包裹(这其实不是合法的JSON格式),所以第一步要先把它转换成合法的JSON数组,再进行解析。

完整代码实现

import json

# 读取文件内容
with open("C:\\the_file.json") as data_file:
    raw_data = data_file.read().strip()

# 处理成合法的JSON数组(因为原内容是多个对象用逗号分隔)
valid_json = f"[{raw_data}]"

# 解析JSON
data_list = json.loads(valid_json)

# 遍历查找目标数据
target_id = None
for item in data_list:
    if item.get("People") == "John":
        target_id = item["ID"]
        break

# 输出结果
if target_id:
    print(target_id)  # 会输出 OI85
else:
    print("未找到匹配的记录")

为什么这是更优的方法?

  • 健壮性强:不管JSON里的字段顺序如何变化、有没有额外的空格,都能正确解析,不会像字符串查找那样因为位置偏移出错。
  • 可读性高:代码逻辑清晰,一眼就能看出来是在查找People为John的记录,维护起来更方便。
  • 扩展性好:如果以后要查找其他字段,或者添加更多筛选条件,只需要修改遍历里的判断逻辑就行。

如果你的JSON文件本身就是合法的数组格式(已经有外层的[]),那可以直接跳过处理成合法JSON的步骤,直接用json.load(data_file)加载即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 19:12:47