可扩展的JSON支持不同语言的数据格式。默认情况下支持日期和日期时间对象
eson的Python项目详细描述
扩展JSON(ESON)
JSON非常适合于以人类可读的格式共享数据,但有时它缺乏对象类型支持。 ESON并没有重新发明轮子,它只是为您提供了一个实现扩展JSON对象的基础,允许您 作为对象在服务、应用程序和语言之间共享数据。在
ESON带有日期和日期时间的内置扩展。您可以编写自己的扩展来管理 自定义数据。在
这是ESON的python版本。查看其他语言here
入门
安装
运行pip install eson
用法
下面是使用eson的各种操作的摘要。 Click here打开一个实时测试环境。在
编码:
fromdatetimeimportdatetime,dateimportesonuser={"name":"Jane Doe","date_of_birth":date.today(),"registered":datetime.now()}# Encoding the dataeson_data=eson.encode(user,pretty=True)# Sample output"""{ "name": "Jane Doe", "EsonDate~date_of_birth": {"year": 2020, "month": 04, "day": 10}, "EsonDatetime~registered": {...}}"""
解码
^{pr2}$扩展ESON
您可以扩展ESON以实现各种目的,例如在收到数据库实体的ID时加载它
下面是用于扩展ESON中日期对象的示例代码
fromdatetimeimportdatefromesonimportEsonExtensionclassEsonDate(EsonExtension):# Extend this method, use it to check whether you should encode this valuedefshould_encode(self,value)->bool:returntype(value)==datedefencode(self,value):# Encode your value to valid JSON objectreturndict(year=value.year,month=value.month,day=value.day)defdecode(self,encoded_value):# Decode your object to an object relevant to your applicationreturndate(**encoded_value)
创建扩展后,在应用程序的入口将扩展添加到ESON
importesoneson.add_extension(EsonDate)
就这样,你的扩展已经准备好编码对象了。在
- 项目
标签: