无论是在Web开发还是服务端开发,json格式都是相当常见的数据传输格式,一般情况下我们对于json的解析构造性能并不需要太多关心,除非是数据量很大或者性能要求较高的系统交互中。
在Python中json的序列化与反序列化有很多库,具体选择使用哪一个,或者哪一个速度更快呢?下面我们对5种常见的库进行对比:
- ujson
- yajl
- cjson
- simplejson
- stdlib json
测试方式:
测试结论:
- 1.stdlib json也就是内置的json.dumps外,其他都是第三方包。
- 2.数据量较少时,速度几乎没有区别,无所谓选择哪一个。
- 3.数据量大的情况下,ujson的总体表现最好,但序列化不如yajl
原文来自微信公众号:技术90分,欢迎订阅,获取更多技术文章、资源分享
在django中,如果只是response一个json对象,可以直接使用JsonResonse
用法为:
>>> from django.http import JsonResponse>>> response = JsonResponse({'foo': 'bar'})>>> response.content'{"foo": "bar"}'
默认采用内置stdlib方式进行json格式化后返回。如果数据不多,着实方便(django1.7引入)
以上测试代码来自rtyler,在其基础上新增了ujson
import timeimport pickleimport yajltry: import cjsonexcept ImportError: cjson = Nonetry: import simplejsonexcept ImportError: simplejson = Nonetry: import ujsonexcept ImportError: ujson = Nonetry: import jsonexcept ImportError: json = Nonedefault_data = { "name": "Foo