================== python-rapidjson
RapidJSON的Python封装
:作者: Ken Robbins ken@kenrobbins.com; Lele Gaifax lele@metapensiero.it
:许可证: MIT许可证
__
:状态: |构建| |文档|
__ https://raw.githubusercontent.com/python-rapidjson/python-rapidjson/master/LICENSE .. |构建| image:: https://travis-ci.org/python-rapidjson/python-rapidjson.svg?branch=master :target: https://travis-ci.org/python-rapidjson/python-rapidjson :alt: 构建状态 .. |文档| image:: https://readthedocs.org/projects/python-rapidjson/badge/?version=latest :target: https://readthedocs.org/projects/python-rapidjson/builds/ :alt: 文档状态
RapidJSON_是一个极其快速的C++ JSON解析和序列化库:本模块将其封装成Python 3扩展,提供其序列化/反序列化(到/从bytes
、str
或类文件实例)和JSON Schema
__验证功能。
最新版本的文档由Read the Docs
__自动生成。
__ http://json-schema.org/documentation.html __ https://python-rapidjson.readthedocs.io/en/latest/
入门
首先安装python-rapidjson
:
.. code-block:: bash
$ pip install python-rapidjson
或者,如果你喜欢使用Conda
__:
.. code-block:: bash
$ conda install -c conda-forge python-rapidjson
基本用法如下:
.. code-block:: python
>>> import rapidjson
>>> data = {'foo': 100, 'bar': 'baz'}
>>> rapidjson.dumps(data)
'{"foo":100,"bar":"baz"}'
>>> rapidjson.loads('{"bar":"baz","foo":100}')
{'bar': 'baz', 'foo': 100}
>>>
>>> class Stream:
... def write(self, data):
... print("块:", data)
...
>>> rapidjson.dump(data, Stream(), chunk_size=5)
块: b'{"foo'
块: b'":100'
块: b',"bar'
块: b'":"ba'
块: b'z"}'
开发
如果你想安装开发版本(可能是为了贡献修复或增强功能),你可以克隆仓库:
.. code-block:: bash
$ git clone --recursive https://github.com/python-rapidjson/python-rapidjson.git
.. note:: 需要使用--recursive
选项,因为我们使用子模块来包含RapidJSON_源码。或者,你可以进行普通的clone
,然后立即执行git submodule update --init
。
另外,如果你已经有了(兼容版本的)RapidJSON头文件,你可以通过指定``--rj-include-dir``选项来编译模块,例如:
.. code-block:: shell
$ python3 setup.py build --rj-include-dir=/usr/include/rapidjson
一组makefile实现了最常见的操作,如构建、检查和发布;查看make help
输出以获取可用目标的列表。
性能
python-rapidjson
尽可能地保持高性能,同时保持与json
模块的兼容性。
查看文档中的这一节
__以了解与其他JSON库的比较。
__ https://python-rapidjson.readthedocs.io/en/latest/benchmarks.html
不兼容性
尽管我们试图实现与标准库json
类似的API,但成为完全可替代的替代品并不是我们的目标,我们决定在某些方面有所不同。查看文档中的这一节
__以了解更多详情。
__ https://python-rapidjson.readthedocs.io/en/latest/quickstart.html#incompatibilities
.. _RapidJSON: http://rapidjson.org/