用于python的json编解码器

mrjson的Python项目详细描述


mrjson

MRJSON是一个用C/C++编写的JSON编码器和解码器,用于Python 2.5 +和3的绑定。对于长字符串、浮点数和mrjson基准测试,我需要比我的用例中最快的python解析器快2-3倍的性能。

要安装它,只需像往常一样运行pip:

    $ pip install mrjson

用法

可以用作json的替代品

>>>importmrjsonasjson>>>json.dumps([{"key":"value"},81,True])'[{"key":"value"},81,true]'>>>json.loads("""[{"key": "value"}, 81, true]""")[{'key':'value'},81,True]

编码器差异

sure_ascii在基本json模块中默认为true,但由于空间和性能原因,这里默认为false。

indentseparatorssortkeys不受支持,因为漂亮的打印不需要性能。如果你有一个用例,写一个问题。

allow\u nan不受支持,因为默认情况下支持nan和无穷大。

如果自定义对象实现返回有效json字符串的json()方法,则支持自定义对象。

基准

对自己的文件进行基准测试,因为结果可能会有很大的不同:

$ python -m timeit -s "import mrjson as json;st = open('canada.json').read();" "json.loads(st)"
100 loops, best of 3: 8.05 msec per loop

$ python -m timeit -s "import json;st = open('canada.json').read();" "json.loads(st)"
10 loops, best of 3: 32.7 msec per loop

或者运行bench.py来测试其他模块的mrjson。由于英特尔的AVX2指令和^ {A1}用于发布实现Florian Loitsch浮点到字符串算法的C++代码,MRJSON特别擅长解码长字符串和浮点数。

负载

只有128字节长的字符串。

主要是浮点数——从{a2}中的CANADA.JSON,最快的C++ JSON解析器在该机器上以7.9毫秒的形式出现,用于比较

twitter上的一条tweet-twit.json

来自The Native JSON Benchmark

的citm_catalog.json

转储

只有128字节长的字符串。

大部分是浮点数-canada.json来自The Native JSON Benchmark

twitter上的一条tweet-twit.json

来自The Native JSON Benchmark

的citm_catalog.json

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
当您有许多具有不同密钥值的位置时,java Enterprise是加密环境变量的正确方法   java如何使用视图保持器模式制作自定义适配器?   java如何迭代Camel体中的嵌套列表?   序列化用base 64进行Java序列化   java打开文件的最佳方式(并确保选择了文件)   java marvin图像色差插件错误   java如何在eclipse中添加属性文件文件夹   比较java。util。日历日期到java。util。日期   java无法在下一个类(活动)中获取哈希表   java如何将这段代码转换为循环?   java查找通过REST失败   java getIntent返回null   在Java中,如何通过外部集合从内部集合检索数据?   java单点登录以保护REST API和内部基于web的系统