简单验证/转换传入的JSON数据的方式。
项目描述
from datetime import datetime
from verity import Type, field
def parse_date(value):
return datetime.strptime(value, '%Y-%m-%d').date()
class Person(Type):
name = field(str)
birthdate = field(parse_date)
>>> data = {'name': 'Bob', 'birthdate': '1980-12-21'}
>>> person = Person(data)
>>> person.birthdate
datetime.date(1980, 12, 21)
类型是可嵌套的
class Food(Type):
name = field(str)
energy = field(float)
class Person(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 协作
>>> from verity import json
>>> json.dumps(person)
'{"birthdate": "1980-12-21", "favourite_food": {"energy": 1200.0, "name": "Pizza"}, "name": "Bob"}'
项目详情
下载文件
下载适合您平台文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源分布
verity-0.1.tar.gz (3.4 kB 查看哈希值)
构建分布
verity-0.1-py2.py3-none-any.whl (4.1 kB 查看哈希值)
关闭
verity-0.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9a90bb94146f937057a10c630386f631018c77b52805ca86031d5a9ff6926b4e |
|
MD5 | c599b9d97cc6ea82f1b891e3874b1876 |
|
BLAKE2b-256 | a16b6261ffeda91e4763e700cf1439038ccbc3b64f520a18f2b61e76c1205b8a |