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

嵌套JSON提取首次出现的键值对报错,求正确获取首个eid值方法

解决JSON提取eid的TypeError问题

我来帮你搞定这个问题,你遇到的错误主要出在两个地方:索引顺序搞反了,还有不小心把字典转成字符串导致没法用键索引取值。

错误原因拆解

  • 先看你的JSON结构:"search-results" 下面的 "entry" 是数组(列表)类型,所以得先拿到 entry 这个列表,再取它的第一个元素(索引0),而不是反过来先写[0]再找entry。
  • 其次,你用了 json.dumps() 把 resp.json() 返回的字典转换成了字符串。字符串只能用整数索引(比如取某个位置的字符),自然会触发 TypeError: string indices must be integers 这个错误。

正确的提取代码

你根本不需要用 json.dumps() 来格式化输出(除非只是为了打印看结构),直接用 resp.json() 返回的字典就行:

# 直接获取响应的字典格式结果,不要转成字符串
results = resp.json()

# 按照正确的层级路径提取第一个eid
myvar = results['search-results']['entry'][0]['eid']
print(myvar)

这段代码会输出你想要的结果:10-s2.0-60103485

额外说明

如果你只是想打印格式化后的JSON结构方便查看,可以分开操作,不要把格式化后的字符串用来做数据提取:

import json

# 获取字典格式的结果用于数据提取
results_dict = resp.json()

# 格式化打印JSON结构(这一步仅用于辅助查看,不影响提取逻辑)
print(json.dumps(results_dict, sort_keys=True, indent=4, separators=(',', ': ')))

# 提取第一个eid
myvar = results_dict['search-results']['entry'][0]['eid']
print(myvar)

这样既可以清晰查看JSON结构,又能正确提取到目标数据啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:33:33