Files
pydantic/docs/examples/ex_json.py
T
2018-07-11 15:08:51 +01:00

52 lines
985 B
Python

from typing import List
from pydantic import BaseModel, Json, ValidationError
class SimpleJsonModel(BaseModel):
json_obj: Json
class ComplexJsonModel(BaseModel):
json_obj: Json[List[int]]
print(SimpleJsonModel(json_obj='{"b": 1}'))
# > SimpleJsonModel json_obj={'b': 1}
print(ComplexJsonModel(json_obj='[1, 2, 3]'))
# > ComplexJsonModel json_obj=[1, 2, 3]
try:
ComplexJsonModel(json_obj=12)
except ValidationError as e:
print(e)
"""
1 validation error
json_obj
JSON object must be str, bytes or bytearray (type=type_error.json)
"""
try:
ComplexJsonModel(json_obj='[a, b]')
except ValidationError as e:
print(e)
"""
1 validation error
json_obj
Invalid JSON (type=value_error.json)
"""
try:
ComplexJsonModel(json_obj='["a", "b"]')
except ValidationError as e:
print(e)
"""
2 validation errors
json_obj -> 0
value is not a valid integer (type=type_error.integer)
json_obj -> 1
value is not a valid integer (type=type_error.integer)
"""