Skip to main content

用于将任意对象图序列化为 JSON 的 Python 库

项目描述

https://img.shields.io/pypi/v/jsonpickle.svg https://img.shields.io/pypi/pyversions/jsonpickle.svg https://readthedocs.org/projects/jsonpickle/badge/?version=latest Github 操作 BSD

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 (189.9 kB 查看哈希)

已上传 source

内置分布

jsonpickle-2.2.0-py2.py3-none-any.whl (39.3 kB 查看哈希)

已上传 py2 py3