可扩展的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)

就这样,你的扩展已经准备好编码对象了。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaGCP:一个VM可以位于具有相同地址的不同网络上吗?   java查找安卓中第一个数组的第二个数组中存在的元素的索引   java摄像头活动不工作,设置参数失败   用于python的Base64转换的Java等效代码   为什么JPA/Hibernate在我尝试运行@Query时抛出“java.lang.NegativeArraySizeException:1”?   如何在ubuntu for java的终端上设置路径?   java为什么这两个IP不同?   java JPA:如何将本机查询结果集转换为POJO类集合   java如何在|(12)|(23)中用数字拆分字符串   异常处理如何让程序在达到Java目标后停止运行   java如何不添加以特定字符开头的元素   java如何通过字符串获得swing按钮名称?   java如何在响应不成功时读取改装中的错误体?   java*更新*现在我的程序可以编译但不运行了?