flask 的 jsonify 自动排序问题

flask 的 jsonify 自动排序问题背景·Python在写接口的时候有时需要返回json格式的数据给客户端·最简单的方式就是用flask的jsonify,能直接将字典格式化为json的形式进行传输例如fromflaskimportjsonify………defreturn_success(data):”””返回成功信息”””returnjsonify(data)通过以上jsonify的方式大部分需求是能够搞定的问题引发但是有时候我们要传递的json格式可能

大家好,又见面了,我是你们的朋友全栈君。

背景

·Python 在写接口的时候有时需要返回 json 格式的数据给客户端
·最简单的方式就是用 flask 的 jsonify,能直接将字典格式化为 json 的形式进行传输
例如
from flask import jsonify
...
...
...
def return_success(data):
    """返回成功信息"""
    return jsonify(data)
通过以上 jsonify 的方式大部分需求是能够搞定的

问题引发

但是有时候我们要传递的 json 格式可能是这样的
{
	"1":[],
	"2":[],
	"3":[],
	...
	...
	"9":[],
	“10”:[]
}
就是以数字或者有数字标识(例如:rank1,rank2…)的作为 key
乍一看没有什么问题,但是,一旦这个 key 超过 9,也就是10 + 的时候,由于 jsonify 有自动排序的功能,那么以上我们想要的格式就会变成这样:
{
	"1":[],
	“10”:[],
	"2":[],
	"3":[],
	...
	...
	"9":[]
}
显然这不是我们想要的结果,我们就是想要按数字的从小到大的顺序来展示
那 jsonify 就不满足我们的需求了

问题解决

可以借助 flask 的另外一个组件:Response,然后通过 json.dumps()方法来避免自动排序
但是这个组件需要指定数据格式,例如:Response(json.dumps(data), mimetype='application/json')
具体实现
import json
from flask import Response
···
···
···
def return_success(data):
    """返回成功信息"""
    return Response(json.dumps(data), mimetype='application/json')
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/142516.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • elasticsearch size+from 在分布式系统中深度分页查询慢分析

    在实际的项目中数据量较大,查询ES进行查询并做分页处理,导致当分页页码过大的时候,查询响应非常的慢,在网上找打这一个分析,记录一下!Tip在 reindex 中解释了如何 能够 有效获取大量的文档。分页在之前的 空搜索 中说明了集群中有 14 个文档匹配了(empty)query 。 但是在 hits 数组中只有 10 个文档。如何才能看到其他的文档?和 SQL 使用 LIM…

  • C++ int转char_c语言中int转char

    C++ int转char_c语言中int转char文章目录1.通过ascii码:2.直接转换(更简单,推荐)1.通过ascii码:chara=’0′;intia=(int)a;/*notethattheintcastisnotnecessary–intia=awouldsuffice*/cout<<ia<<endl;结果如下:可以看出这种方法得到的其实是ch…

  • YDOOK: ASCII码表:完整的 ASCII码表 ASCII码官方全收录

    YDOOK: ASCII码表:完整的 ASCII码表 ASCII码官方全收录YDOOK:ASCII码表:完整的ASCII码表ASCII码官方全收录ASCii打印字符对照表DEC OCTHEX BIN 缩写/符号 HTML实体 符号描述0 000 00 00000000 NUL &#+000; Nullchar(空字符)1 001 01 00000001 SOH &#+001; StartofHeading(标题开始)2 002 02 00000010 STX &#+002; StartofText(正文开始)3 003

  • string.isnotblank_StringUtils

    string.isnotblank_StringUtilsisNotEmpty将空格也作为参数,isNotBlank则排除空格参数StringUtils方法的操作对象是java.lang.String类型的对象,是JDK提供的String类型操作方法的补充,并且是null安全的(即如果输入参数String为null则不会抛出NullPointerException,而是做了相应处理,例如,如果输入为null则返回也是null等除了构造器,StringUtils中一共有130多个方法,并且都是static的,所以我们可以这样调用StringUtils..

  • Java下载文件的几种方式「建议收藏」

    Java下载文件的几种方式「建议收藏」1.以流的方式下载.publicHttpServletResponsedownload(Stringpath,HttpServletResponseresponse){try{//path是指欲下载的文件的路径。Filefile=newFile(path);//取得文件名…

  • 深入浅出,JWT单点登录实例+原理

    深入浅出,JWT单点登录实例+原理深入浅出,JWT单点登录实例先直接上案例,方便工作中拷贝。后面说原理。代码git链接 案例演示:Controller: 登录授权接口,用户输入名字密码后请求此接口。登录成功后返回jwt 模拟认证中心,真实环境中此接口应该是一个单独的服务,这里方便演示,用一个接口代替。@PostMapping(“/login”)publicObjectlogin(){returnnull;} 主业务服务的主接口,返回主页

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号