轻松反序列化复杂对象并将其序列化为 json。
项目描述
json-coder:快速将python序列化和反序列化为json对象
默认库 pythonjson模块支持自定义解码器和编码器,允许将自定义对象保存和恢复到 json 中。与酸洗对象相比,这更便携且更易于手动编辑。
该库支持以下用例:
-
具有 json 加载和转储功能的类(定义转储的
.json属性或.to_json()方法,定义.from_json()构造函数或适当的 init 以供读取) -
蟒蛇
dataclass类 -
其他地方定义的类的自定义加载和转储函数
基本上,类被分配了一个标识符,并创建了以下结构的 json 对象:
{
'__<identifier>__': <object data>
}
使用示例
使用预定义架构的自定义类:
import json
import json_coder
@json.jsonify("testclass")
class TestClass:
def __init__(self, a: int):
self.a = a
def to_json(self):
return {"a": self.a}
# Usage
a = json.loads('{"__testclass__": {"a": 10}}')
print(a)
# <__main__.TestClass object at 0x10eb26810>
print(json.dumps(a))
# {"__testclass__": {"a": 10}}
数据类不需要任何额外的方法来正常工作。
from dataclasses import dataclass
import json
import json_coder
@json_coder.jsonify("testdataclass")
@dataclass
class TestDataClass:
a: int
a = json.loads('{"__testdataclass__": {"a": 10}}')
print(type(a)) # should now be an object of testdataclass
print(json.dumps(a))
自定义转储器和读取功能也可以通过手动注册添加到现有类中:
import datetime
import json
import json_coder
json_coder.register("datetime", datetime.datetime, datetime.datetime.fromisoformat, datetime.datetime.isoformat)
d = json.loads('{"__datetime__": "2018-10-10"}')
print(d)
print(json.dumps(d))
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
json-coder-0.5.1.tar.gz
(4.6 kB
查看哈希)
内置分布
json_coder-0.5.1-py3-none-any.whl
(4.0 kB
视图哈希)
关
json_coder -0.5.1-py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 40fb54400ed6eb8496ec171ec86bfd4ccd873e75520ea8694d582dff6405be5d |
|
| MD5 | b0eea5fe453f9db6637aa0a27015efc7 |
|
| 布莱克2-256 | 7f3d88c6a4ae27923e048785acd260a49a3644263749030fe35b5d575c8d8e55 |