如何在Python中通过键从输出结果提取单个值?附代码场景
如何从Python脚本的JSON输出中提取单个值?
看起来你的脚本已经成功输出了JSON格式的字符串,要提取单个值其实很简单,核心是把JSON字符串转换成Python的字典对象,之后就能通过键直接取值了。我帮你修改一下代码,顺便解释清楚步骤:
首先,注意你用到了reduce,但代码里没导入functools模块,这会报错,所以第一步要补上导入。然后,处理后的rep2是JSON字符串,我们用json.loads()把它转成字典,之后就可以轻松提取值了。
修改后的完整代码:
import requests from bs4 import BeautifulSoup import json from functools import reduce # 必须导入reduce所在的模块 page = requests.get("你的目标URL") # 记得填入实际的URL res = page.text def srs(res): repls = ('srs(', ''), ('});', '') s = res rep1 = reduce(lambda a, kv: a.replace(*kv), repls, s) rep2 = rep1.replace('[', '') # 将JSON字符串解析为Python字典 parsed_data = json.loads(rep2) # 通过键提取对应的值,这里以你的示例键为例 term = parsed_data.get("term") moresuggestions = parsed_data.get("moresuggestions") # 打印提取到的值 print(f"提取到的term值: {term}") print(f"提取到的moresuggestions值: {moresuggestions}") srs(res)
关键说明:
json.loads(rep2):这一步是把JSON格式的字符串转换成Python能识别的字典对象,这是提取值的核心步骤。- 使用
get()方法:相比于直接用parsed_data["term"],get()方法更安全——如果指定的键不存在,它会返回None而不是直接抛出KeyError异常,避免程序崩溃。 - 扩展提取:如果你的JSON里还有其他键,比如
au...对应的完整键名,只要替换成parsed_data.get("你的键名")就能提取对应的值了。
内容的提问来源于stack exchange,提问作者user7718611
相关产品推荐
相关产品推荐

