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

如何自定义Python Flask API的输出字段顺序?

解决Flask API输出JSON字段自定义顺序的问题

核心原因

Flask默认开启JSON_SORT_KEYS配置(值为True),会自动对JSON输出的字段按字母排序;另外Python3.6及以下版本的普通字典不保留插入顺序,也会导致字段顺序不可控。

解决方案

1. 关闭Flask的自动排序配置

初始化Flask应用时添加以下配置,禁用字段自动排序:

from flask import Flask

app = Flask(__name__)
# 关闭JSON字段自动排序
app.config['JSON_SORT_KEYS'] = False

2. 按自定义顺序构造返回数据

根据你的Python版本选择对应方式:

  • Python3.7及以上:直接按期望顺序创建普通字典(3.7+字典原生保留插入顺序)
from flask import jsonify

@app.route('/your-api-endpoint')
def your_api_function():
    # 按目标顺序构造数据字典
    response_data = {
        "name": "ACC",
        "date": "2015-02-02",
        "open": 1554.9,
        "high": 1556.7,
        "low": 1544.8,
        "close": 1549.6,
        "volume": 1441,
        "alma": None
    }
    return jsonify(response_data)
  • Python3.6及以下:使用collections.OrderedDict明确指定顺序
from collections import OrderedDict
from flask import jsonify

@app.route('/your-api-endpoint')
def your_api_function():
    response_data = OrderedDict([
        ("name", "ACC"),
        ("date", "2015-02-02"),
        ("open", 1554.9),
        ("high", 1556.7),
        ("low", 1544.8),
        ("close", 1549.6),
        ("volume", 1441),
        ("alma", None)
    ])
    return jsonify(response_data)

3. 验证输出

启动Flask应用后访问API端点,即可得到符合自定义顺序的JSON输出:

{
    "name": "ACC",
    "date": "2015-02-02",
    "open": 1554.9,
    "high": 1556.7,
    "low": 1544.8,
    "close": 1549.6,
    "volume": 1441,
    "alma": null
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 00:57:29