jsonschema數據驗證模塊


在項目中遇到有同時用到jsonschema模塊來驗證數據結構感覺挺有用的,記錄一下

 

如果我想要驗證一個普通的字典結構該怎么辦?

字典

from jsonschema import validate, ValidationError

#這里的type要寫json支持的type
schema = {
    'type': 'object',
    "properties": {
        "price": {"type": "number"},
        "name": {"type": "string"}
    },
    "required": ["price", "name"]  # 要求必須傳的參數
}

data = {
    "price": 34.55,
    "name": "egg"
}

try:
    validate(data, schema) #驗證通過啥也不返回,不通過就會報錯
except ValidationError as e:
    print(e)

數組

簡單數組

schema = {

    "maxItems": 2  # 最大只能兩個元素
}

data = [1, 2, 3]

try:
    validate(data, schema)
except ValidationError as e:
    print(e)


#結果
[1, 2, 3] is too long

Failed validating 'maxItems' in schema:
    {'maxItems': 2}

On instance:
    [1, 2, 3]

復雜數組,即數組里邊含有字典

schema = {
    "type": "array",
    "items": {
        'type': 'object',
        'properties': {
            'id': {'type': 'string'},
            'price': {'type': 'number'},
        },
        "required": ["price"]  # 注意這個要放在字典里邊,否則不起作用

    }

}

data = [{'id': "222", 'price': 45}]

try:
    validate(data, schema)
except ValidationError as e:
    print(e)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM