orjson:功能丰富的高性能 Python JSON 库
简介
首先我们先来了解下orjson的优缺点:
可以将datetime、date和time实例序列化为RFC 3339格式,例如:"2022-06-12T00:00:00 00:00"序列化numpy.ndarray实例的速度比其他库快4-12倍,但使用的内存更少,约为其他库的1/3左右输出速度是标准库的10到20倍序列化的结果是bytes类型,而不是str序列化str时,不会将unicode转义为ASCII序列化float的速度是其他库的10倍,反序列化的速度是其他库的两倍可以直接序列化str、int、list和dict的子类不提供load( )和dump( )方法,在原生JSON库中,load( )方法可以把json格式的文件转换成python对象序列化dataclass类型import dataclasses, orjson, typing
@dataclasses.dataclass
class Member:
id: int
active: bool = dataclasses.field(default=False)
@dataclasses.dataclass
class Object:
id: int
name: str
members: typing.List[Member]
print(orjson.dumps(Object(1, "a", [Member(1, True), Member(2)])))
输出为:b{"id":1,"name":"a","members":[{"id":1,"active":true},{"id":2,"active":false}]}
序列化 float
orjson序列化和反序列化双精度浮点数,不会损失精度。当序列化NaN,Infinity,-Infinity时,会返回null。