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

如何限制Flask接口返回的JSON数据仅为100条?

实现Flask接口返回前100条JSON数据

嘿,这个需求很好实现,咱们只需要对原来的代码做几个小调整——核心思路是先把JSON文件解析成Python对象,截取前100条后再重新序列化为JSON返回。下面是修改后的完整代码:

from flask import Flask
from flask import make_response
import io
import json  # 新增:导入JSON处理模块

app = Flask(__name__)

@app.route("/cases")
def cases():
    # 用with语句打开文件,自动处理关闭逻辑,更安全
    with io.open("file.json", mode="r", encoding="utf-8") as f:
        # 将JSON文件内容解析为Python列表(假设你的JSON是数组结构)
        original_data = json.load(f)
    
    # 截取前100条数据,如果总条数不足100则返回全部
    limited_data = original_data[:100]
    
    # 将截取后的数据重新序列化为JSON字符串,保留非ASCII字符(比如中文)
    json_str = json.dumps(limited_data, ensure_ascii=False)
    
    # 构建响应并设置正确的MIME类型
    r = make_response(json_str)
    r.mimetype = 'application/json'
    return r

关键修改点说明:

  • 导入json模块:原来的代码直接读取文件文本返回,现在需要解析和重新生成JSON,所以必须导入这个模块。
  • 用with语句管理文件:代替直接open,能自动关闭文件句柄,避免资源泄漏问题。
  • 解析JSON为Python对象:json.load(f)把文件里的JSON数组转成Python列表,这样就能用切片操作截取数据。
  • 切片截取前100条:original_data[:100]是Python的切片语法,非常简洁——如果原数据不足100条,会自动返回全部内容,不用额外判断。
  • 重新序列化为JSON:json.dumps(..., ensure_ascii=False)确保返回的JSON里的中文、特殊字符不会被转义成Unicode编码,保持可读性。

特殊情况处理

如果你的file.json不是直接的数组结构,而是嵌套对象(比如{"data": [{"id":1}, ...]}),那只需要调整截取逻辑:

# 假设JSON结构是{"data": [ ... ]}
limited_data = {"data": original_data["data"][:100]}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:54:37