检查 JSON 字符串是否是有效的 Pydantic 架构

Stu*_*ent 3 python validation pydantic

我想检查 JSON 字符串是否是有效的 Pydantic 架构。

from pydantic import BaseModel

class MySchema(BaseModel):
    val: int
Run Code Online (Sandbox Code Playgroud)

我可以通过 try/ except 非常简单地做到这一点:

import json

valid = '{"val": 1}'
invalid = '{"val": "horse"}'

def check_valid(item):
    try:
        MySchema(**json.loads(item))
        return True
    except:
        return False

print(check_valid(valid))
print(check_valid(invalid))
Run Code Online (Sandbox Code Playgroud)

输出:

True
False
Run Code Online (Sandbox Code Playgroud)

使用 try/ except 来获得真/假似乎是不好的做法。有没有更好的办法?

小智 7

import pydantic

class MySchema(pydantic.BaseModel):
    val: int

MySchema.parse_raw('{"val": 1}')
MySchema.parse_raw('{"val": "horse"}')
Run Code Online (Sandbox Code Playgroud)

我认为这将是最简单的解决方案:)