简单的方法来验证/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"}'