用于python的超高速json编解码器
ujson-x-legac的Python项目详细描述
ultrajson-x-legacy
===
图片::https://travis-ci.org/paweltroka/ultrajson-x.svg?branch=legacy
:目标:https://travis-ci.org/paweltroka/ultrajson-x?分支=遗产[BR/>< BR/>超JSON-X遗产是一种超高速JSON编码器和解码器,用Python 2.5 +和3的绑定编写在纯C上。
BR/>对于更无痛的日常C/C++ JSON解码器经验,请基于UpjJSON检查UJSON4CI。
BR/>_ ujson4c:http://github.com/esnme/ujson4c/
====
用法
===
可用作python的大多数其他json解析器的替换:
>;>;导入ujson
>;>;ujson.dumps([{"key":"value"},81,true])
'[{"key":"value"},81,true]'
>;ujson.loads("[{"key":"value"},81,true]")
[{u'key':u'value'},81,true]
~~~~~~~~~~~~~~~~~~~~~
编码器选项
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
将HTML字符编码成更安全的Unicode序列。默认值为False::
>;>ujson.dumps("<;script>;john&;doe",encode_html_chars=true)
'"\u003cscript\\u003ejohn\\u0026doe"'
确保将输出限制为ascii,并忽略127以上的所有扩展字符。默认值为true。如果您的结束格式支持UTF-8,强烈建议将此选项设置为false以节省空间:
>;>ujson.dumps(u"\xe5\xe4\xf6")
"\\u00e5\\u00e4\\u00f6"
>;>ujson.dumps(u"\xe5\xe4\xf6",确保"u 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"
——
控制是否对正斜杠(``/```)进行转义。默认值为true::
>;>;ujson.dumps("http://esn.me")
'"http:\/\/esn.me"'
>;>;ujson.dumps("http://esn.me",escape向前斜杠=false)
'"http://esn.me"
indent
启用。默认值为0(禁用):
>>>gt;ujson.dumps({"foo":"bar"}
{"foo":"bar"}
>>gt>gt;ujson.dumps({"foo":"bar""{"foo":"bar"},indent=4)
>
{
"foo":"bar"
>
>
>
>
>
>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
精确浮动
--——
设置为在将字符串解码为双倍值时启用更高精度(strTod)函数。默认情况下,将使用快速但不太精确的内置功能:
>;>ujson.loads("4.56")
4.5600000000000005
>;>ujson.loads("4.56",precise\u float=true)
4.559999999996
~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~ Linux3.13.0-66-generic x86-u64 108 ubuntu smp ubuntu smp 2008年10月7日15:20:27-2015年10月7日15:20:27-2015年10月7日15:20:27 UTC 2015年10月7日
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~4E2D97E548A765D5F089858C41967B0)
-yajl:0.3.5
+——————————————————————————————————————————————————————————————————————————————|| ujson | yajl | simplejson | json |
+===============================================================================+============+============+============+============+
| Array with 256 doubles | | | | |
+--------------—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————---——+——————————————————字符串编码|2717.14 2006.38 2961.72
+——————————————————————————————————————————————————————————————————-----------------------------+————————————————————————————————————————————————————————————————————————————————————————————————————————————----+————————————————————————————————————————————————————————————————————————| 23264.70 12788.85 25427.88 9352.36
+————————————————————————————————————————————————————————————————中等复杂对象|||||
+————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————--——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————+——————————————————————————————————————————————————————————————————————————————————————| 105998.03 102067.28 44758.51 60424.80
+---------------------------—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————-———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————-——+————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————r/>dict,256个数组,256个dict{string,int}对| 50.25 46.45 13.82 29.28
+————————————————————————————————————————————————————————————————————————————解码| 33.27 22.10 27.91 10.43
+——————G排序的键.19 7.75 2.39
+————————|||||
+——————————————————————————————————————————————————————————————————————————————————————————————————————————————————R/>+??——---——————34(0c52200eb4e2d97e548a765d5f089858c41967b0)
-yajl:0.3.5
+——————————————————————————————————————————————————————————————————||ujson yajl simplejson json
+=============================================================+===+=+==+==+=+==+==+===+===+====+====+===+==+
----+
编码3477.15 5732.24 3016.76 3071.99
+——————————————————————————————————————————————————————————————————————解码| 23625.20 9731.45 9501.57 9901.92
+———————————————————————————————————————————————————————————————————————————————————————————————————————+————————--——+————————————————————————————————————————————————————数组带256个字符串|25461.75 12188.64 13054.76 14429.81
+———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————---——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————| 7887.77 5126.67 4934.60 6204.97
+——————|||||
+———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————-————————————————————————————————————————————————————————————————————————解码| 148312.69 75485.90 88434.91 116395.51
+??????????????+????????+????????+????????+????????+
256 dict{string,int}对的数组|||||
+——————————————————————————————————————————————————————————————————————————————————————————————————————————————02.35
+——————————--————————————————————————————————————————————————————————————————————————————————————————————————---————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————-+————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————----+————————————————————————————————————————————————————————————————————————————————--——+
| 432.30 351.47 379.34
+————————————————————————————————————————————————————————————————————————————解码| 434.40 221.97 149.57 147.79
+————————————————————————————————————————————————————————————————+
===
图片::https://travis-ci.org/paweltroka/ultrajson-x.svg?branch=legacy
:目标:https://travis-ci.org/paweltroka/ultrajson-x?分支=遗产[BR/>< BR/>超JSON-X遗产是一种超高速JSON编码器和解码器,用Python 2.5 +和3的绑定编写在纯C上。
BR/>对于更无痛的日常C/C++ JSON解码器经验,请基于UpjJSON检查UJSON4CI。
BR/>_ ujson4c:http://github.com/esnme/ujson4c/
====
用法
===
可用作python的大多数其他json解析器的替换:
>;>;导入ujson
>;>;ujson.dumps([{"key":"value"},81,true])
'[{"key":"value"},81,true]'
>;ujson.loads("[{"key":"value"},81,true]")
[{u'key':u'value'},81,true]
~~~~~~~~~~~~~~~~~~~~~
编码器选项
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
将HTML字符编码成更安全的Unicode序列。默认值为False::
>;>ujson.dumps("<;script>;john&;doe",encode_html_chars=true)
'"\u003cscript\\u003ejohn\\u0026doe"'
确保将输出限制为ascii,并忽略127以上的所有扩展字符。默认值为true。如果您的结束格式支持UTF-8,强烈建议将此选项设置为false以节省空间:
>;>ujson.dumps(u"\xe5\xe4\xf6")
"\\u00e5\\u00e4\\u00f6"
>;>ujson.dumps(u"\xe5\xe4\xf6",确保"u 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"
控制是否对正斜杠(``/```)进行转义。默认值为true::
>;>;ujson.dumps("http://esn.me")
'"http:\/\/esn.me"'
>;>;ujson.dumps("http://esn.me",escape向前斜杠=false)
'"http://esn.me"
indent
启用。默认值为0(禁用):
>>>gt;ujson.dumps({"foo":"bar"}
{"foo":"bar"}
>>gt>gt;ujson.dumps({"foo":"bar""{"foo":"bar"},indent=4)
>
{
"foo":"bar"
>
>
>
>
>
>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
精确浮动
--——
设置为在将字符串解码为双倍值时启用更高精度(strTod)函数。默认情况下,将使用快速但不太精确的内置功能:
>;>ujson.loads("4.56")
4.5600000000000005
>;>ujson.loads("4.56",precise\u float=true)
4.559999999996
~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~ Linux3.13.0-66-generic x86-u64 108 ubuntu smp ubuntu smp 2008年10月7日15:20:27-2015年10月7日15:20:27-2015年10月7日15:20:27 UTC 2015年10月7日
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~4E2D97E548A765D5F089858C41967B0)
-yajl:0.3.5
+——————————————————————————————————————————————————————————————————————————————|| ujson | yajl | simplejson | json |
+===============================================================================+============+============+============+============+
| Array with 256 doubles | | | | |
+--------------—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————---——+——————————————————字符串编码|2717.14 2006.38 2961.72
+——————————————————————————————————————————————————————————————————-----------------------------+————————————————————————————————————————————————————————————————————————————————————————————————————————————----+————————————————————————————————————————————————————————————————————————| 23264.70 12788.85 25427.88 9352.36
+————————————————————————————————————————————————————————————————中等复杂对象|||||
+————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————--——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————+——————————————————————————————————————————————————————————————————————————————————————| 105998.03 102067.28 44758.51 60424.80
+---------------------------—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————-———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————-——+————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————r/>dict,256个数组,256个dict{string,int}对| 50.25 46.45 13.82 29.28
+————————————————————————————————————————————————————————————————————————————解码| 33.27 22.10 27.91 10.43
+——————G排序的键.19 7.75 2.39
+————————|||||
+——————————————————————————————————————————————————————————————————————————————————————————————————————————————————R/>+??——---——————34(0c52200eb4e2d97e548a765d5f089858c41967b0)
-yajl:0.3.5
+——————————————————————————————————————————————————————————————————||ujson yajl simplejson json
+=============================================================+===+=+==+==+=+==+==+===+===+====+====+===+==+
----+
编码3477.15 5732.24 3016.76 3071.99
+——————————————————————————————————————————————————————————————————————解码| 23625.20 9731.45 9501.57 9901.92
+———————————————————————————————————————————————————————————————————————————————————————————————————————+————————--——+————————————————————————————————————————————————————数组带256个字符串|25461.75 12188.64 13054.76 14429.81
+———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————---——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————| 7887.77 5126.67 4934.60 6204.97
+——————|||||
+———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————-————————————————————————————————————————————————————————————————————————解码| 148312.69 75485.90 88434.91 116395.51
+??????????????+????????+????????+????????+????????+
256 dict{string,int}对的数组|||||
+——————————————————————————————————————————————————————————————————————————————————————————————————————————————02.35
+——————————--————————————————————————————————————————————————————————————————————————————————————————————————---————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————-+————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————----+————————————————————————————————————————————————————————————————————————————————--——+
| 432.30 351.47 379.34
+————————————————————————————————————————————————————————————————————————————解码| 434.40 221.97 149.57 147.79
+————————————————————————————————————————————————————————————————+