简单的方法来验证/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第三方库


热门话题
Java程序运行时错误   JavaAndroidStudio:与往常一样,四舍五入到next.5或.0   apache使用Java以表单数据形式上载文件   带矢量的java Freeflight相机如何正确旋转?   java如何以编程方式检索有关当前项目的语言、操作系统、体系结构等信息   java Twitter4J tweet实体?   java PdfBox编码异常   java在拖动未装饰的舞台时,如何强制光标停留在窗口上   JavaSpring注释扫描优化   java无法通过IntelliJ Idea在tomcat上运行服务   java在生命周期中如何拦截请求?   java中的数组返回错误