简单的方法来验证/Cast收入JSon数据。

verit的Python项目详细描述


fromdatetimeimportdatetimefromverityimportType,fielddefparse_date(value):returndatetime.strptime(value,'%Y-%m-%d').date()classPerson(Type):name=field(str)birthdate=field(parse_date)
>>>data={'name':'Bob','birthdate':'1980-12-21'}>>>person=Person(data)>>>person.birthdatedatetime.date(1980,12,21)

类型是可嵌套的:

classFood(Type):name=field(str)energy=field(float)classPerson(Type):name=field(str)birthdate=field(parse_date)favourite_food=field(Food)
>>>data={'name':'Bob','birthdate':'1980-12-21','favourite_food':{'name':'Pizza','energy':'1200'}}>>>person=Person(**data)>>>person.favourite_food.name'Pizza'

类型可以自己JSON

>>>person.__json__(){'name':'Bob','birthdate':datetime.date(1980,12,21),'favourite_food':Food()}

虽然没有复发。

但是,它可以与json_default

>>>fromverityimportjson>>>json.dumps(person)'{"birthdate": "1980-12-21", "favourite_food": {"energy": 1200.0, "name": "Pizza"}, "name": "Bob"}'

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

推荐PyPI第三方库


热门话题
在ElasticSearch中将SearchHit转换为Java对象   第三方库类的java重写XmlAdapter   java如何使用动画类获得平滑的动画效果?   Java PDFBox如果文本内容超过PDF的第一页,如何添加新页面?   Java二叉搜索树u根到最近叶的距离   java什么是diff Scanner和BufferedReader   java如何设计不生成并行数组的程序   java多次声明变量会降低执行速度吗?   java如何使用JXLAPI读取下拉列表的值   多线程为什么自定义阻塞队列在Java中不是线程安全的   java在一个变量中每输入1000个单位,就从另一个变量中减去1?   java Mapstruct通用映射器   Java中的类能否确定它是否已被修改?   java如何在MogoOperations聚合函数中定义输出类型?