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

Python中如何从SmartAPI返回的JSON数据集提取jwtToken值

问题原因

代码无法正常取到jwtToken有三个核心问题:

  • 执行顺序错误:refreshToken = data['data']['refreshToken']写在generateSession调用之前,此时data变量还未定义,会触发NameError。
  • 多余的解析操作:SmartConnect的generateSession方法本身返回的就是Python原生字典结构,不需要再调用json.loads()做二次解析,传入字典给json.loads()会触发类型错误。
  • 取值方式错误:Python字典不支持.属性访问方式,必须通过键名索引逐层取值。
正确实现代码
from smartapi import SmartConnect
from smartapi import SmartWebSocket

# 初始化连接对象
obj = SmartConnect(api_key="vhidyTNq")
# 先调用接口生成会话,拿到返回的字典数据
data = obj.generateSession("P78013","Ujhdy@2")

# 按字典层级直接取值即可
jwtToken = data['data']['jwtToken']
refreshToken = data['data']['refreshToken']
feedToken = obj.getfeedToken()

# 初始化websocket连接
ss = SmartWebSocket(feedToken,"P78013")

# 打印验证结果,输出格式和预期完全一致
print(f"jwtToken='{jwtToken}'")
补充说明
  • 示例代码移除了当前登录逻辑用不到的pandas、json导入,如果后续有数据处理、原始JSON字符串解析需求可以自行加回。
  • 如果你后续拿到的接口返回是未解析的JSON字符串格式,才需要用json.loads()转成字典,转换后依然要通过['键名']的方式取值,不能直接用点访问属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 14:15:31