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
文档
即将推出…