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

Python调用GraphQL API GET请求出现JSONDecodeError报错如何解决?

错误原因

  • 你直接发空GET请求到GraphQL接口,返回的是GraphQL可视化调试页面的HTML内容,根本不是JSON格式,所以触发JSON解析报错
  • 调用GraphQL接口必须在请求中指定对应的查询语句,明确你要获取的字段
  • 就算请求成功,GraphQL的返回结构也不是直接的数组,外层有data字段包裹,不能直接用json_data[0]取值

修复后可运行代码

import requests

def get_quote():
    # 构造GraphQL查询语句,指定要获取的语录内容和作者字段
    graphql_query = """
    query {
        getAllQuotes {
            quote
            author
        }
    }
    """
    # GET请求需要把查询语句作为query参数传递
    params = {"query": graphql_query}
    response = requests.get(
        'https://demotivation-quotes-api.herokuapp.com/graphql',
        params=params
    )
    # 直接调用requests内置的json解析方法即可,不需要手动导入json模块处理
    json_data = response.json()
    # 按GraphQL返回结构取第一条语录拼接
    first_quote = json_data['data']['getAllQuotes'][0]
    return f"{first_quote['quote']} - {first_quote['author']}"

if __name__ == "__main__":
    quote = get_quote()
    print(quote)

补充优化建议

如果不需要拉取全量语录,你也可以调整GraphQL查询语句为随机单条查询,减少数据传输量,查询效率更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 20:06:00