Python 处理 JSON 必要时我选择 ujson 和 orjson

在 Python 使用用  json.dumps(data) 时突然发现特别慢,data 本身不大,但是一个包含很多元素的列表,所以促使本人寻找一个替代的 JSON 处理库。大概对比了一个 ujson(UtltraJSON), python-rapidjson(RapidJSON) 和 Python 自带的 json 库。还有一个 simplejson 是为兼容 Python 2.6 以前用的(json 是 Python 2.6 新加入的 API),性能有些差。

基本上姜还是老的辣,想要收获更好的性能,还得仰赖传统的 C/C++ 语言,ujson 是用纯 C 写的,RapidJSON 是 C++ 写的,后者还是十美分的开源产品。json, ujson, rapidjson 三者 loads() 方法的性能差别不太明显,但 dumps() 大对象时 Python 自带的 json 库就要考验用户的耐心了。

注:最开始本来认定了 ujson 为最佳选择, 所以先从 usjon 和 rapidjson 切入的,后来写作本文的过程中,从 usjon 的自我介绍中发现了 Rust 写的 orjson 很显眼,才加入了 orjson 的测试,看来 orjson 更值得拥有。

阅读全文 >>