python中用于数据编组/解组的轻量级库

schematizer的Python项目详细描述


schematizer是python中用于数据编组/解组的轻量级库。

它可以帮助您:

  • validate输入和输出数据
  • marshall将原始数据封送到要与之交互的表单中
  • unmarshal本地数据,以便可以将其呈现为json、yaml、msgpack等。

示例

很简单。

>>>fromschematizer.exceptionsimportBaseValidationError>>>fromschematizer.schemas.compoundimportDict,List>>>fromschematizer.schemas.simpleimportDate,Str>>>fromschematizer.validatorsimportLength>>>>>>album_schema=Dict({...'title':Str(),...'released_at':Date(),...})>>>>>>artist_schema=Dict({...'name':Str(),...'albums':List(album_schema),...})>>>>>>artist_schema.to_native({...'name':'Burzum',...'albums':[...{...'title':'Filosofem',...'released_at':'1996-01-01',...},...],...}){'name':'Burzum','albums':[{'title':'Filosofem','released_at':datetime.date(1996,1,1)}]}

数据无效。

>>>try:...artist_schema.to_native({...'albums':[...{'released_at':'19960101'},...],...})...exceptBaseValidationErrorasexc:...exc.flatten()...[SimpleValidationError('MISSING',path=['name'],extra=None),SimpleValidationError('MISSING',path=['albums',0,'title'],extra=None),SimpleValidationError('INVALID',path=['albums',0,'released_at'],extra={'message':"time data '19960101' does not match format '%Y-%m-%d'"}),]

安装

$ pip install schematizer

文档

即将推出…

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

推荐PyPI第三方库


热门话题
java无法启动应用程序:JNLP错误   java根据用户输入在PreparedStatement中使用setTime()或setNull()   java EJB与同步   java以object为键通过hashmap进行搜索   java中的模10^9+7   针对包含其他对象的对象的java OOP最佳实践   如何将字符串作为HTML代码从Java文件读取到JSP页面?   java我的POM怎么了?“解析表达式..检测到递归表达式循环”   用于Hbase的Mapreduce的java NoSuchMethodError   JAVAlang.SecurityException:权限拒绝:启动意图{act=安卓.Intent.action.MAIN cat=[安卓.Intent.category.LAUNCHER]   数组初始化谜语Java   通过arraylist搜索时的java句柄关联