Python更快的解析JSON大文件
来源:互联网 发布:在淘宝上买摩托车 编辑:程序博客网 时间:2024/06/04 21:29
提出问题
今天用python的simplejson库解析一个 >200MB 的JSON文件,发现一次decode/encode都得要 >10s,这个在我开来,实在太慢了,有没有更快的库了?
先给出我的简单测试结果
json大小:245MB
测试方法:read文件内容,然后一次decode, 一次encode
不成熟的结论: pypy+json最快
方法一:pypy+json
python自带的JSON库是用纯python代码实现的,而pypy对纯python代码的加速效果比较好。至于为什么,大家可以去google吧,很多文章解释的很好。
方法二:UltraJson
我首先想到的用C库来做JSON的解析,原因你懂的,而C语言有个JSON库叫CJSON,于是用python+cjson在google里找到了UltraJson
UltraJson是作者用C语言实现的JSON库,实际测试的效果是,整个encode的效率提升了2倍多。
使用方法:
安装:pip instal ujson
>>> import ujson >>> ujson.dumps([{"key": "value"}, 81, True]) '[{"key":"value"},81,true]' >>> ujson.loads("""[{"key": "value"}, 81, true]""") [{u'key': u'value'}, 81, True]
一些测试
Test machine:
Linux 3.13.0-66-generic x86_64 #108-Ubuntu SMP Wed Oct 7 15:20:27 UTC 2015
Versions:
CPython 2.7.6 (default, Jun 22 2015, 17:58:13) [GCC 4.8.2]
blist : 1.3.6
simplejson: 3.8.1
ujson : 1.34 (0c52200eb4e2d97e548a765d5f089858c41967b0)
yajl : 0.3.5
Array with 256 UTF-8 strings
Array with 256 UTF-8 strings
Array with 256 strings
Medium complex object
Array with 256 True values
Array with 256 dict{string, int} pairs
Dict with 256 arrays with 256 dict{string, int} pairs
Dict with 256 arrays with 256 dict{string, int} pairs, outputting sorted keys
Complex object
- Python更快的解析JSON大文件
- 解析Json速度更快,Gson的APT版本开源库
- lbjson2,比fastjson更轻量级,更快的json解析库
- python解析json文件
- python解析json文件
- python 解析 json文件
- python解析json文件
- 让python代码运行的更快
- JSON使用案例--一次性解析比较大的json文件
- PHP更快的提供文件下载
- php 更快的文件下载
- Python大文件解析的效率问题
- python解析json字符串和json文件的区别
- 比JSON更快、更小--MessagePack
- 使用python解析json文件
- 使用python解析json文件
- 使用python解析json文件
- 使用Python解析JSON文件
- L22 yum更换国内源,yum下载rpm包,源码包安装
- thinkphp(3) 字符串截取函数msubstr
- 303. Range Sum Query
- java架构师大型分布式项目实战视频教程
- Ubuntu Server 16.04 安装MySQL并设置远程访问
- Python更快的解析JSON大文件
- MQTT--topic(主题)设计
- Lambda表达式学习心得
- 函数调用堆栈
- Ubuntu上安装MySQL
- Bootstrap select 赋值正解!!
- Ubuntu 16.04开启SSH服务
- Linux下搭建FTP服务器(Ubuntu16.04)
- RecyclerView 与 ScrollView嵌套