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

如何从Flask GET请求中提取JSON列表值并解决JSONDecodeError报错

问题原因

json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)报错的本质是Flask端通过requests获取到的响应内容为空,或者不是合法JSON格式,而非JSON提取的语法逻辑存在问题。你当前写的Express接口返回逻辑、Flask端.json()调用写法本身是符合规范的,问题大概率出在Kubernetes集群内的服务调用链路上。

Flask端正确的JSON列表提取方式

你现有代码中循环复制列表的操作属于冗余逻辑,requests调用.json()方法解析JSON数组后会直接返回Python列表,可直接使用。推荐添加异常处理逻辑方便排查问题,参考代码如下:

import requests
from flask import render_template, abort

@main.route('/')
def index():
    try:
        # 添加超时配置,避免请求无限制挂起
        resp = requests.get('http://express:8085/url1', timeout=5)
        # 校验响应状态码,非2xx状态直接抛出异常
        resp.raise_for_status()
        # 解析JSON内容,返回的字符串数组会直接转为Python列表
        latest_list = resp.json()
        # 可选添加格式校验,确保返回结果是预期的列表类型
        if not isinstance(latest_list, list):
            raise ValueError("接口返回格式不符合预期,不是列表类型")
    except requests.exceptions.ConnectionError:
        abort(500, description="无法连接到Express服务,请检查服务域名配置")
    except requests.exceptions.Timeout:
        abort(500, description="请求Express服务超时")
    except requests.exceptions.HTTPError as e:
        abort(500, description=f"Express服务返回错误状态码:{e.response.status_code}")
    except ValueError as e:
        abort(500, description=f"响应解析失败:{str(e)}")
    
    return render_template('index.html', list_of_names = latest_list)
报错解决步骤

按如下顺序排查即可定位问题:

  • 先验证Kubernetes内服务连通性:进入Flask应用的Pod内部,执行curl http://express:8085/url1查看返回结果
    • 如果curl提示域名解析失败/连接被拒绝:确认Express应用的Service名称为express、端口配置为8085、和Flask应用在同一个Namespace下。如果跨Namespace,需要将请求域名改为express.<对应命名空间>.svc.cluster.local
    • 如果curl返回非JSON内容(比如默认的Nginx错误页、空响应):查看Express应用的Pod日志,排查应用启动、运行报错
  • 确认Express接口配置:不要将res.json(latestList)改为res.send(latestList),res.json()会自动设置Content-Type: application/json响应头,符合JSON接口规范
  • 排除中间件干扰:如果集群内部署了服务网格、API网关等中间件,确认没有规则篡改、拦截发往Express服务的请求和响应

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:45:01