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

如何用Python 3从接口JSON的JsonData数组提取LTP实时行情值?

问题修复与代码优化

嘿,我来帮你搞定这段代码的问题~

你当前代码的核心错误是:data是接口返回的字符串,不能直接用data['JsonData']去索引字段。必须先把整个字符串解析成Python字典对象,才能访问里面的键值对。

下面是修正并优化后的代码,还加了异常处理来应对常见的网络和解析问题:

from urllib.request import urlopen, HTTPError
import json

url = "https://ewmw.edelweiss.in/api/Market/Process/GetFutureValue/BANKNIFTY/05%20Apr%202018"

try:
    # 发起网络请求并获取响应
    response = urlopen(url)
    # 读取响应内容并解码为UTF-8字符串
    data_str = response.read().decode("utf-8")
    # 将JSON字符串解析为Python字典
    data_dict = json.loads(data_str)
    
    # 提取JsonData数组(用get避免字段不存在时抛错)
    json_data = data_dict.get("JsonData", [])
    
    # 遍历数组,提取每个元素的LTP实时行情值
    if json_data:
        print("提取到的LTP实时行情值:")
        for item in json_data:
            ltp_value = item.get("LTP")
            if ltp_value is not None:
                print(ltp_value)
    else:
        print("未找到JsonData数组,或数组为空")
        
except HTTPError as e:
    print(f"网络请求失败,状态码:{e.code}")
except json.JSONDecodeError:
    print("解析失败:返回的内容不是有效的JSON格式")
except Exception as e:
    print(f"发生未知错误:{str(e)}")

关键修正点说明:

  • 先通过json.loads()把字符串转成字典,再访问JsonData字段,这是你原来代码最核心的问题;
  • 使用get()方法替代直接索引(比如data_dict.get("JsonData")而不是data_dict["JsonData"]),这样如果接口返回的JSON里没有这个字段,代码不会直接崩溃,而是返回默认值;
  • 增加了异常捕获,覆盖了网络请求失败、JSON解析错误等场景,让代码更健壮;
  • 遍历JsonData数组,逐个提取LTP值,确保你能拿到所有实时行情数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:02:11