> >content_en="haswrongcontent'йцукен'""/> > >content_en="haswrongcontent'йцукен'"">
Rumah > Artikel > pembangunan bahagian belakang > Pengesahan pydantic. Semak sama ada rentetan tidak mengandungi aksara tertentu
Saya perlu memastikan bahawa rentetan itu tidak mengandungi aksara Cyrillic. Saya menyemaknya seperti ini:
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 'йцукен'"
Tetapi apabila saya menghantar rentetan yang mengandungi huruf Cyrillic ke medan content_en
, tiada ralat yang dilemparkan.
Anggaran:
pydantic_core._pydantic_core.validationerror: 1 validation error for mymodel ...
Bagaimana untuk menyemak ia betul?
python 3.8
Padantik 2.5
Penyelesaian (terima kasih kepada @chepner):
class MyModel(BaseModel): content_en: str = Field(pattern=r"^[^а-яА-ЯёЁ]*$")
Corak anda sepadan dengan mana-mana rentetan yang mengandungi sekurang-kurangnya satu aksara bukan Cyrillic, berbanding rentetan yang hanya terdiri daripada aksara bukan Cyrillic.
>>> 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
Corak yang betul ialah ^[^а-яА-Я]*$
:
>>> 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
Atas ialah kandungan terperinci Pengesahan pydantic. Semak sama ada rentetan tidak mengandungi aksara tertentu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!