使任何类型的json可序列化

alljson的Python项目详细描述


Build status

使任何类型的json可序列化。

一个python模块,它使json.dumps与几个内置的 和stdlib类型。用于注册任何自定义类型的钩子 提供。

安装

只需使用pip安装alljson或将其添加到项目依赖项:

pip install alljson

支持的类型

安装后,以下类型是json可序列化的:

  • 发电机
  • setfrozenset
  • dictitem/key/value迭代器和视图
  • datetime.datedatetime.datetime(作为iso格式的字符串)
  • uuid.UUID
  • decimal.Decimal(序列化为字符串以保持精度)
  • reversed结果

除此之外,还支持以下python 3类型:

  • mapfilterrange迭代器
  • enum.Enum
  • pathlib.Path
  • types.MappingProxyType
  • 实现SequenceMappingabc接口的类

注册自定义类型

要注册新类型,请使用alljson.register_encoder(type, encoder_function)encoder_function应该接受给定的对象 键入作为唯一参数并返回一个简单的json可序列化 python值(例如dictstr)。

例如:

import arrow
import alljson

alljson.register_encoder(arrow.Arrow, arrow.Arrow.isoformat)

致谢

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

推荐PyPI第三方库


热门话题
iOS MDM注册配置文件请求/Profile使用java对证书进行签名   java如何调试GWT项目中的PHP文件   Mac和Windows之间的Java文件getFreeSpace差异   java从ArrayList进入JComboBox   ApacheKafka如何执行zookeeperserverstart。我的java程序中的bat文件?   JAXRS应用程序的java初始化   java如何为double覆盖compareTo方法?   使用进程动态运行java代码   sockets java。网SocketException:权限被拒绝openshift   java PorterduffXfermode:清除位图的一部分   其他线程中变量的java更改侦听器   java如何初始化接口实例以与父片段中的子片段通信   java Cordova插件在构建时出错,源代码1.6中不支持菱形运算符使用源代码7   java是学习编程的教育游戏吗?   在不同机器上使用JasperReports API运行代码时出现java问题   java Spring引导延迟Flyway序列化循环依赖   未为加密/解密初始化java密码