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

Python调用API并返回JSON响应的问题求助

解决方案

方法一:利用requests内置的json()方法

requests库已经封装了JSON响应解析逻辑,直接调用response.json()就能将响应转换成Python字典/列表,再传入jsonify即可正常返回JSON格式响应:

from flask import Flask, jsonify
import requests

app = Flask(__name__)

@app.route('/github-timeline')
def get_github_timeline():
    response = requests.get('https://github.com/timeline.json')
    # 直接解析响应为Python可序列化对象
    data = response.json()
    return jsonify(data)

if __name__ == '__main__':
    app.run()

方法二:手动解码字节并解析JSON

如果必须使用response.content,需要先将字节数据解码为字符串,再用json.loads()转换成Python对象:

from flask import Flask, jsonify
import requests
import json

app = Flask(__name__)

@app.route('/github-timeline')
def get_github_timeline():
    response = requests.get('https://github.com/timeline.json')
    # 先解码字节为UTF-8字符串,再解析为Python对象
    content_str = response.content.decode('utf-8')
    data = json.loads(content_str)
    return jsonify(data)

if __name__ == '__main__':
    app.run()

问题原因说明

  • response.content返回的是字节类型数据,直接返回会输出原始字节流,不是标准JSON格式;
  • jsonify仅支持序列化Python基础数据类型(字典、列表、字符串等),字节对象不在可序列化范围内,因此会抛出Object of type bytes is not JSON serializable错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 01:25:25