Ich muss sicherstellen, dass die Zeichenfolge keine kyrillischen Zeichen enthält. Ich überprüfe es so:
from pydantic import basemodel, field class mymodel(basemodel): content_en: str = field(pattern=r"[^а-яА-Я]") data = mymodel(content_en="has wrong content 'йцукен'") print(data) >>> content_en="has wrong content 'йцукен'"
Aber wenn ich eine Zeichenfolge mit kyrillischen Buchstaben an das Feld content_en
übergebe, wird kein Fehler ausgegeben.
Geschätzte:
pydantic_core._pydantic_core.validationerror: 1 validation error for mymodel ...
Wie kann ich überprüfen, ob es korrekt ist?
Python 3.8
Padantik 2,5
Lösung (danke an @chepner):
class MyModel(BaseModel): content_en: str = Field(pattern=r"^[^а-яА-ЯёЁ]*$")
Ihr Muster entspricht jeder Zeichenfolge, die mindestens ein nicht-kyrillisches Zeichen enthält, nicht einer Zeichenfolge, die nur aus nicht-kyrillischen Zeichen besteht.
>>> mymodel(content_en="has wrong content 'йцукен'") mymodel(content_en="has wrong content 'йцукен'") >>> mymodel(content_en="йцукен") traceback (most recent call last): file "<stdin>", line 1, in <module> file "/users/chepner/py311/lib/python3.11/site-packages/pydantic/main.py", line 164, in __init__ __pydantic_self__.__pydantic_validator__.validate_python(data, self_instance=__pydantic_self__) pydantic_core._pydantic_core.validationerror: 1 validation error for mymodel content_en string should match pattern '[^а-яА-Я]' [type=string_pattern_mismatch, input_value='йцукен', input_type=str] for further information visit https://errors.pydantic.dev/2.5/v/string_pattern_mismatch
Das richtige Muster ist ^[^а-яА-Я]*$
:
>>> class MyModel(BaseModel): ... content_en: str = Field(pattern=r"^[^а-яА-Я]*$") ... >>> MyModel(content_en="Has wrong content 'йцукен'") Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Users/chepner/py311/lib/python3.11/site-packages/pydantic/main.py", line 164, in __init__ __pydantic_self__.__pydantic_validator__.validate_python(data, self_instance=__pydantic_self__) pydantic_core._pydantic_core.ValidationError: 1 validation error for MyModel content_en String should match pattern '^[^а-яА-Я]*$' [type=string_pattern_mismatch, input_value="Has wrong content 'йцукен'", input_type=str] For further information visit https://errors.pydantic.dev/2.5/v/string_pattern_mismatch
Das obige ist der detaillierte Inhalt vonPydantische Überprüfung. Überprüfen Sie, ob eine Zeichenfolge bestimmte Zeichen nicht enthält. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!