json schema 벨리데이션 만들어줌
https://jsonschema.net/home
여기 사이트 가면 만들어주는데
첫번째 화면에 내 json 입력하면
옆에서 validation 해줌
여기의 펜 버튼 누르면 수정 할 수 있음
나의 요청에 맞게 수정가능
이런식으로 수정 가능한데
type --> int, null 등을 지정 가능
require -> 필수로 들어와야하는 값이면 표시
pattern --> 정규식
{
"start_period": "2020-06-12",
"end_period": "2020-07-02",
"seller_name": "판매자",
"product_name": "상품",
"product_id": 1,
"code": "SB000000000000000009",
"seller_attribute": 1,
"on_sale": 1,
"on_list": 0,
"discount": 1,
"limit": 10,
"offset": 0
}
위의 내용을 넣으면
{
"$schema": "http://json-schema.org/draft-07/schema",
"$id": "http://example.com/root.json",
"type": "object",
"title": "The Root Schema",
"description": "The root schema is the schema that comprises the entire JSON document.",
"default": {},
"required": [
"checked",
"dimensions",
"id",
"name",
"price",
"tags"
],
"properties": {
"checked": {
"$id": "#/properties/checked",
"type": "boolean",
"title": "The Checked Schema",
"description": "An explanation about the purpose of this instance.",
"default": false,
"examples": [
false
]
},
"dimensions": {
"$id": "#/properties/dimensions",
"type": "object",
"title": "The Dimensions Schema",
"description": "An explanation about the purpose of this instance.",
"default": {},
"examples": [
{
"height": 10.0,
"width": 5.0
}
],
"required": [
"width",
"height"
],
"properties": {
"width": {
"$id": "#/properties/dimensions/properties/width",
"type": "integer",
"title": "The Width Schema",
"description": "An explanation about the purpose of this instance.",
"default": 0,
"examples": [
5
]
},
"height": {
"$id": "#/properties/dimensions/properties/height",
"type": "integer",
"title": "The Height Schema",
"description": "An explanation about the purpose of this instance.",
"default": 0,
"examples": [
10
]
}
}
},
"id": {
"$id": "#/properties/id",
"type": "integer",
"title": "The Id Schema",
"description": "An explanation about the purpose of this instance.",
"default": 0,
"examples": [
1
]
},
"name": {
"$id": "#/properties/name",
"type": "string",
"title": "The Name Schema",
"description": "An explanation about the purpose of this instance.",
"default": "",
"examples": [
"A green door"
]
},
"price": {
"$id": "#/properties/price",
"type": "number",
"title": "The Price Schema",
"description": "An explanation about the purpose of this instance.",
"default": 0,
"examples": [
12.5
]
},
"tags": {
"$id": "#/properties/tags",
"type": "array",
"title": "The Tags Schema",
"description": "An explanation about the purpose of this instance.",
"default": [],
"examples": [
[
"home",
"green"
]
],
"items": {
"$id": "#/properties/tags/items",
"type": "string",
"title": "The Items Schema",
"description": "An explanation about the purpose of this instance.",
"default": "",
"examples": [
"home",
"green"
]
}
}
}
}
이렇게 바꿔줌
사용하기
# my_schema.py
json_schema = {위의 스키마}
from jsonschema import validate, ValidationError
여기서 validate는 벨리데이션 오류 확인해주는 함수이고
validationError는 에러 문구 확인해주는 함수!
validate(validation확인할 josn, 스키마)
사용 예시
from jsonschema import validate, ValidationError
from my_schema import json_schema
validate(validation확인할 josn, json_schema)