用于Python的超高速JSON编码器和解码器
ujson1的Python项目详细描述
这是ultrajson 1.35的兼容性分支,旨在与 通过将c扩展名重命名为“ujson1”来更新版本。在
主线ultrajson 3.x的开发重新开始 https://github.com/ultrajson/ultrajson请在那里发送请求 除非他们绝对有必要让你脱离1.x
UltraJSON是一个用纯C编写的超高速JSON编码器和解码器,绑定了Python2.5+和3。在
对于一个更加无痛的日常C/C++ JSON解码器经验,请基于UpjJSON检查{A3}。在
要安装它,只需像往常一样运行Pip:
$ pip install ujson
使用
可以作为Python的大多数其他JSON解析器的替换:
^{pr2}$编码器选项
编码html字符
用于将“不安全”HTML字符特殊编码为更安全的Unicode序列。默认值为false:
>>> ujson.dumps("<script>John&Doe", encode_html_chars=True) '"\\u003cscript\\u003eJohn\\u0026Doe"'
确保使用ascii
将输出限制为ASCII并转义127以上的所有扩展字符。默认值为true。如果end格式支持UTF-8,强烈建议将此选项设置为false以节省空间:
>>> ujson.dumps(u"\xe5\xe4\xf6") '"\\u00e5\\u00e4\\u00f6"' >>> ujson.dumps(u"\xe5\xe4\xf6", ensure_ascii=False) '"\xc3\xa5\xc3\xa4\xc3\xb6"'
双精度
控制要为双精度值或十进制值编码的小数位数。默认值为9:
>>> ujson.dumps(math.pi) '3.1415926536' >>> ujson.dumps(math.pi, double_precision=1) '3.1' >>> ujson.dumps(math.pi, double_precision=0) '3' >>> ujson.dumps(math.pi, double_precision=4) '3.1416'
转义正斜杠
控制是否转义正斜杠(/)。默认为真:
>>> ujson.dumps("http://esn.me") '"http:\/\/esn.me"' >>> ujson.dumps("http://esn.me", escape_forward_slashes=False) '"http://esn.me"'
缩进
控制是否启用缩进(“精确输出”)。默认值为0(禁用):
>>> ujson.dumps({"foo": "bar"}) '{"foo":"bar"}' >>> ujson.dumps({"foo": "bar"}, indent=4) { "foo":"bar" }
解码器选项
设置为在将字符串解码为双精度值时启用更高精度(strtod)函数。默认情况下,使用快速但不太精确的内置功能:
>>> ujson.loads("4.56") 4.5600000000000005 >>> ujson.loads("4.56", precise_float=True) 4.5599999999999996
试验机:
Linux 3.13.0-66-通用x86Ť108 Ubuntu SMP 2015年10月7日星期三15:20:27 UTC
版本:
- CPython 2.7.6(违约,2015年6月22日,17:58:13)[GCC 4.8.2]
- B列表:1.3.6
- simplejson:3.8.1
- ujson:1.34(0c52200eb4e2d97e548a765d5f089858c41967b0)
- 雅居乐:0.3.5
ujson | yajl | simplejson | json | |
---|---|---|---|---|
Array with 256 doubles | ||||
encode | 3508.19 | 5742.00 | 3232.38 | 3309.09 |
decode | 25103.37 | 11257.83 | 11696.26 | 11871.04 |
Array with 256 UTF-8 strings | ||||
encode | 3189.71 | 2717.14 | 2006.38 | 2961.72 |
decode | 1354.94 | 630.54 | 356.35 | 344.05 |
Array with 256 strings | ||||
encode | 18127.47 | 12537.39 | 12541.23 | 20001.00 |
decode | 23264.70 | 12788.85 | 25427.88 | 9352.36 |
Medium complex object | ||||
encode | 10519.38 | 5021.29 | 3686.86 | 4643.47 |
decode | 9676.53 | 5326.79 | 8515.77 | 3017.30 |
Array with 256 True values | ||||
encode | 105998.03 | 102067.28 | 44758.51 | 60424.80 |
decode | 163869.96 | 78341.57 | 110859.36 | 115013.90 |
Array with 256 dict{string, int} pairs | ||||
encode | 13471.32 | 12109.09 | 3876.40 | 8833.92 |
decode | 16890.63 | 8946.07 | 12218.55 | 3350.72 |
Dict with 256 arrays with 256 dict{string, int} pairs | ||||
encode | 50.25 | 46.45 | 13.82 | 29.28 |
decode | 33.27 | 22.10 | 27.91 | 10.43 |
Dict with 256 arrays with 256 dict{string, int} pairs, outputting sorted keys | ||||
encode | 27.19 | 7.75 | 2.39 | |
Complex object | ||||
encode | 577.98 | 387.81 | 470.02 | |
decode | 496.73 | 234.44 | 151.00 | 145.16 |
版本:
- CPython 3.4.3(违约,2015年10月14日,20:28:29)[GCC 4.8.4]
- B列表:1.3.6
- simplejson:3.8.1
- ujson:1.34(0c52200eb4e2d97e548a765d5f089858c41967b0)
- 雅居乐3.0
- 项目
标签: