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

已获取JSON字符串,如何提取指定层级数据?用BS还是JSON库?

解决方案:提取JSON中的third_layer内容

不能用BeautifulSoup实现这个需求,必须用Python的JSON库来处理。原因很简单:

  • BeautifulSoup的核心能力是解析HTML/XML结构,你已经用它拿到了script标签里的JSON文本,这一步BS的任务就完成了。
  • 接下来要处理的是JSON这种键值对数据结构,这是JSON库的职责,BS完全不擅长这个。

具体操作步骤和代码示例:

  1. 解析JSON字符串为Python字典
    用json.loads()把你拿到的found_json字符串转换成Python可操作的字典对象。

  2. 层级访问提取third_layer内容
    根据给定的JSON结构,通过字典的键逐层访问到third_layer。

  3. 保存提取的内容
    用json.dump()把提取到的内容写入JSON文件,方便后续使用。

完整代码示例:

import json

# 假设你已经通过BeautifulSoup获取到了found_json字符串
found_json = '''{"first_layer":{"second_layer":{"third_layer":{"id":"KYOU","liveData":{"status":"online"}}}}}'''

# 解析JSON字符串
parsed_data = json.loads(found_json)

# 提取third_layer下的所有内容
third_layer_content = parsed_data["first_layer"]["second_layer"]["third_layer"]

# 保存到本地JSON文件
with open("third_layer_result.json", "w", encoding="utf-8") as file:
    json.dump(third_layer_content, file, ensure_ascii=False, indent=4)

print("third_layer内容已成功保存")

额外提示:

  • 如果担心键不存在导致报错,可以用get()方法做容错处理,比如:
    third_layer_content = parsed_data.get("first_layer", {}).get("second_layer", {}).get("third_layer", {})
    
  • 如果found_json有语法问题(比如多余的转义字符),json.loads()会抛出异常,需要先检查并清洗字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 23:35:20