用于将任意对象图序列化为 JSON 的 Python 库
项目描述
jsonpickle
jsonpickle 是一个用于复杂 Python 对象和JSON的双向转换的库。jsonpickle 基于现有的 JSON 编码器构建,例如 simplejson、json 和 ujson。
如需完整文档,请访问 jsonpickle 文档。
鼓励在github上的 jsonpickle 存储库中报告错误报告和合并请求 。
jsonpickle 正式支持 CPython 2.7 和 CPython 3.6 或更高版本。CPython 3.7 以下的版本支持将在 jsonpickle 3.0 发布时删除。
为什么是 jsonpickle?
用 python 的 pickle(或 cPickle 或 dill)序列化的数据在 python 之外不容易读取。使用 json 格式,jsonpickle 允许以人类可读的格式存储简单的数据类型,并且可以在任何支持 json 的平台上将更复杂的数据类型(如 numpy 数组和 pandas 数据帧)存储为机器可读。例如,与腌制数据不同,存储在 Amazon S3 存储桶中的 jsonpickled 数据可以被 Amazon 的 Athena 索引。
安全
从安全角度来看,jsonpickle 应该与 Python stdlib pickle 模块一样对待。
安装
从 pip 安装最新的稳定版本:
pip install jsonpickle
从 github 安装以获取最新更改:
pip install git+https://github.com/jsonpickle/jsonpickle.git
如果您已签出文件以进行开发:
git clone https://github.com/jsonpickle/jsonpickle.git cd jsonpickle python setup.py develop
支持
jsonpickle 包含一个内置的 numpy 扩展。如果想对 sklearn 模型、numpy 数组和其他基于 numpy 的数据进行编码,则必须通过注册其处理程序来启用 numpy 扩展:
>>> import jsonpickle.ext.numpy as jsonpickle_numpy >>> jsonpickle_numpy.register_handlers()
熊猫支持
jsonpickle 包含一个内置的 pandas 扩展。如果想对 pandas DataFrame 或 Series 对象进行编码,则必须通过注册其处理程序来启用 pandas 扩展:
>>> import jsonpickle.ext.pandas as jsonpickle_pandas >>> jsonpickle_pandas.register_handlers()
jsonpickleJS
jsonpickleJS 是 Michael Scott Cuthbert 对 jsonpickle 的 javascript 实现。jsonpickleJS 对于在 Python 和 Javascript 之间具有并行数据结构的项目非常有用。
执照
根据 BSD 许可证获得许可。有关详细信息,请参阅复制。有关 jsonpickleJS 许可证的详细信息,请参阅 jsonpickleJS/LICENSE。
发展
使用make运行单元测试:
make test
pytest用于在内部运行单元测试。
提供了一个tox目标来使用 tox 运行测试。使用所有已安装和支持的 Python 版本设置multi=1测试:
make tox make tox multi=1
jsonpickle本身除了 Python 标准库之外没有任何依赖项。 仅使用tox测试运行程序时,测试需要tox。
测试要求在requirements-dev.txt中指定。建议创建一个virtualenv并在virtualenv中运行测试,或者使用vx等工具 激活virtualenv而不污染shell环境:
python3 -mvenv env3x vx env3x pip install --requirement requirements-dev.txt vx env3x make test
jsonpickle支持多个 Python 版本,因此使用多个 virtualenvs 和tox的组合对于在开发时捕获兼容性问题很有用。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
内置分布
jsonpickle -2.2.0.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 7b272918b0554182e53dc340ddd62d9b7f902fec7e7b05620c04f3ccef479a0e |
|
| MD5 | 665c2a1dcb576c0db86750efc2a3e89e |
|
| 布莱克2-256 | 650950bc3aabaeba15b319737560b41f3b6acddf6f10011b9869c796683886aa |
jsonpickle -2.2.0-py2.py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | de7f2613818aa4f234138ca11243d6359ff83ae528b2185efdd474f62bcf9ae1 |
|
| MD5 | fd29f71f5b84cc3c9b25e89fe440f6a1 |
|
| 布莱克2-256 | c685b4920d8087ef480eed4e7b6b0d46c90674e923e59b22e7929fd17aba5030 |