带有类型提示的python的json解码(pep 484)

typedjson的Python项目详细描述


键入djson

LicensePypiCI

带有类型提示的python的json解码(pep 484)。

要求和限制

  • python=3.6
  • 使用非泛型或参数化类解码json。
  • 使用不带前向引用的类型提示。

功能

  • 支持如下解码类型:
    • 原始类型如strintfloatboolNone
    • UnionOptional
    • 同质和异质TupleList
    • 可变长度Tuple
    • 非泛型和参数化数据类。
  • 支持类似于json.loadjson.loads的api。

示例

fromtypingimportOptionalimporttypedjsonfromdataclassesimportdataclass@dataclass(frozen=True)classNameJson:first:strlast:Optional[str]@dataclass(frozen=True)classCatJson:id:strage:intname:Optional[NameJson]json={'id':'test-cat','age':13,'name':{'first':'Jiji',},}print(typedjson.decode(CatJson,json))# Output: CatJson(id='test-cat', age=13, name=NameJson(first='Jiji', last=None))print(typedjson.decode(CatJson,{}))# Output: DecodingError(TypeMismatch(('id',)))

详情请参阅test codes

贡献

请阅读CONTRIBUTING.md

待办事项

  • 禁止显式解码SetDict
  • 提供API文档。
  • 解释typedjson为什么使用未记录的api。
  • 解释typedjson解决了什么问题。
  • 改进api,使其像json.dumpjson.dumps那样转储。
    • 提供mypy插件来检查类是否可以用@typedjson.encodabledecorator编码为json。
  • 支持带有前向引用的类型提示。

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

推荐PyPI第三方库


热门话题
java<E extends Number>和<Number>之间有什么区别?   java如何将ActionScriptObject转换为ByteArray?   java如何平衡图形中的循环?   java为什么会抛出这个SAXParsexException?   使用JPA的java删除实体   java为什么要使用AccessibilityManager是有原因的。sInstance会导致内存泄漏吗?   java如何在Spring表单中隐藏选项?   java简单Hello World servlet在EclipseTomcat中给出错误404   java解决Web应用程序的heapdump问题(JSP+SpringMVC+JPAHIBERNATE)   SpringBoot如何为java联合生成graphql模式?   java是否将用户输入(从TextField)传递到另一个类?   java如何对集合执行clone()。newSetFromMap(地图)   java节点JS服务器处理10000个WebSocket   java为什么Thymeleaf International仅适用于ResourceBundleMessageSource   java如何使用build编译ResourceBundle类。xml文件   Java 2D游戏检查玩家是否触摸到另一个精灵   java无法从类<PowerMockRunner>转换为类<?扩展Runner>   从服务器搜索json数组的java搜索栏   java通过无知解决LazyInitializationException异常   java从线程更新JFreeChart