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

如何使用Python通过键在JSON响应/文件中提取并显示特定值

Python提取JSON特定值的解决方案

嘿,这事儿不难!我给你一步步拆解怎么用Python从这份JSON响应里提取你想要的特定值:

1. 先把JSON转为Python字典

不管你是通过requests库爬取到的响应,还是手里已经有JSON格式的字符串,第一步都要把它转换成Python能直接操作的字典对象:

情况1:用requests获取的响应

import requests

# 替换成你实际请求的URL
response = requests.get("https://your-target-url.com")
# 直接将响应转为字典
data = response.json()

情况2:已有JSON字符串

import json

# 你的完整JSON字符串
json_str = '''{
    "term":"albany",
    "moresuggestions":490,
    "autoSuggestInstance":null,
    "suggestions":[{
        "group":"CITY_GROUP",
        "entities":[{
            "geoId":"1000000000000000355",
            "destinationId":"1508137",
            "landmarkCityDestinationId":null,
            "type":"CITY",
            "caption":"<span class='highlighted'>Albany</span>, Albany County, United States of America",
            "redirectPage":"DEFAULT_PAGE",
            "latitude":42.650249,
            "longitude":-73.753578
        }]
    }]
}'''
# 字符串转字典
data = json.loads(json_str)

2. 提取顶层键值

对于term、moresuggestions这种顶层的键,直接通过字典键访问就行:

# 获取搜索词term
term = data["term"]
print(term)  # 输出: albany

# 获取更多建议数量
more_suggestions = data["moresuggestions"]
print(more_suggestions)  # 输出: 490

3. 提取嵌套结构的值

JSON里有嵌套的列表(比如suggestions)和字典,需要结合索引(列表用下标)和键(字典用键名)来逐层访问:

# 获取第一个建议分组的名称
first_suggestion_group = data["suggestions"][0]["group"]
print(first_suggestion_group)  # 输出: CITY_GROUP

# 获取第一个建议里第一个城市的经纬度
city_lat = data["suggestions"][0]["entities"][0]["latitude"]
city_lng = data["suggestions"][0]["entities"][0]["longitude"]
print(f"纬度: {city_lat}, 经度: {city_lng}")  # 输出: 纬度: 42.650249, 经度: -73.753578

4. 处理HTML转义内容

注意到caption里有<这种HTML转义字符,想要转成正常的HTML格式,可以用html模块的unescape方法:

import html

raw_caption = data["suggestions"][0]["entities"][0]["caption"]
clean_caption = html.unescape(raw_caption)
print(clean_caption)  # 输出: <span class='highlighted'>Albany</span>, Albany County, United States of America

5. 安全提取(避免KeyError)

如果不确定某个键是否存在,直接用[]访问会抛出KeyError,推荐用get()方法,还能设置默认值:

# 安全获取顶层键,不存在则返回默认值
auto_suggest = data.get("autoSuggestInstance", "无数据")
print(auto_suggest)  # 输出: None

# 多层嵌套的安全获取,逐层用get避免报错
destination_id = data.get("suggestions", [{}])[0].get("entities", [{}])[0].get("destinationId", "未找到ID")
print(destination_id)  # 输出: 1508137

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:15:56