用于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在TextView中对齐部分文本   带有iText和eTPKCS11的java PKCS#11签名。dll&SunPKCS11提供程序   java Intellij Idea找不到jar   java Chrome/Firefox和Jetty HTTPS   java我无法打包找不到的JavaFX应用程序模块   多线程Java:排序从异步任务检索的结果   java客户端/服务器socket不能与外部连接一起工作   java如何在单击“下一步”按钮时获取其他详细信息?   java组织。springframework。网状物客户RestTemplate应声明为@Bean,而plain@Autowired抛出错误   java如何绘制javax。摆动将ImageIcon转换为JavaFX。fxml呈现用户界面?   使用for循环的Java跟踪   java如何编码字符串以显示彩色文本(基于字符串中的前缀)   Java保存/打开文件对象   基于java复选框的搜索:使用尽可能多的“”动态生成准备好的语句作为选中复选框的计数   java为什么crawler4j随机挂起?