|
-
- import re
- from cerberus import Validator
- # pattern = re.compile('^[a-zA-Z0-9]{1,36}$') # 用于匹配至少一个数字
- # m = pattern.match('111aaa3213213123123213123a222')
- # print(m)
- #
- # schema = {
- # 'name': {'type': 'string', 'required': True},
- # 'age': {'type': 'integer', 'required': True, 'min': 18},
- # 'email': {'type': 'string', 'required': True, 'regex': r'\w+@\w+\.\w+'}
- # }
- # v = Validator(schema)
- # print(v.validate({ 'name': '11', 'age': 20, 'email': '764784960@qq.com'}))
- # aa = str({ 'name': '11', 'age': 20, 'email': '764784960@qq.com'})
- # print(isinstance(aa, dict))
-
- # schema = {'name': {'type': 'string'}}
- # v = Validator(schema)
- # document = {'name1': 'john doe'}
- # print(v.validate(document))
- # print(v.validate(document, schema))
-
- schema = {
- 'request_id': {
- 'type': 'string',
- 'required': True,
- 'empty': False,
- 'regex': r'^[a-zA-Z0-9]{1,36}$'
- },
- 'command': {
- 'type': 'string',
- 'required': True,
- 'allowed': ['start', 'stop']
- },
- 'pull_url': {
- 'type': 'string',
- 'required': False,
- 'nullable': True,
- 'maxlength': 255
- },
- 'push_url': {
- 'type': 'string',
- 'required': False,
- 'nullable': True,
- 'maxlength': 255
- },
- 'original_url': {
- 'type': 'string',
- 'required': False,
- 'nullable': True,
- 'maxlength': 255
- },
- 'original_type': {
- 'type': 'string',
- 'required': False,
- 'nullable': True,
- 'maxlength': 255
- },
- 'image_urls': {
- 'type': 'list',
- 'required': False,
- 'schema': {
- 'type': 'string',
- 'empty': False,
- 'maxlength': 5000
- }
- },
- 'results_base_dir': {
- 'type': 'string',
- 'required': False,
- 'nullable': True,
- 'regex': r'^[a-zA-Z0-9]{0,36}$'
- },
- 'models': {
- 'type': 'list',
- 'required': False,
- 'schema': {
- 'type': 'dict',
- 'required': False,
- 'schema': {
- 'code': {
- 'type': 'string',
- 'required': True,
- 'empty': False,
- 'dependencies': 'categories',
- 'regex': r'^[a-zA-Z0-9]{1,255}$'
- },
- 'categories': {
- 'type': 'list',
- 'required': True,
- 'dependencies': 'code',
- 'schema': {
- 'type': 'dict',
- 'required': True,
- 'schema': {
- 'id': {
- 'type': 'string',
- 'required': True,
- 'empty': False,
- 'regex': r'^[a-zA-Z0-9]{0,255}$'},
- 'config': {
- 'type': 'dict',
- 'required': False,
- 'dependencies': 'id',
- }
- }
- }
- }
- }
- }
- }
- }
-
- v = Validator(schema, allow_unknown=True)
- aa={
- 'request_id': "111",
- 'command': 'start',
- 'pull_url': None,
- 'push_url': None,
- 'original_url': '',
- 'original_type': '',
- 'image_urls': ['1','1'],
- 'results_base_dir': '111',
- 'models': [
- # {
- # 'code': '1',
- # 'categories': [
- # # {
- # # 'id': '1',
- # # 'config': {}
- # # }
- # ]
- # }
- ]
- }
-
- print(v.validate(aa))
- print(v.errors)
|