提出问题
今天用python的simplejson库解析一个 >200MB 的JSON文件,发现一次decode/encode都得要 >10s,这个在我开来,实在太慢了,有没有更快的库了?
先给出我的简单测试结果
- json大小:245MB
- 测试方法:read文件内容,然后一次decode, 一次encode
| | simplejson | json | ujson | | ------ | ---------- | ---- | ------| | pypy | 40s多 | 10s | 无 | | cpython | 12s多 |17s多 | 10s多 |
- 不成熟的结论: 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,