Pydantic • データの検証とサニタイズに対処する

PHPz
リリース: 2024-08-16 18:03:08
オリジナル
188 人が閲覧しました

Pydantic • Dealing with validating and sanitizing data

私はプログラミングを始めて以来、タスクにはより実践的で直接的な解決策が必要だったので、主に構造化された手続き型パラダイムを使用してきました。データ抽出を扱うときは、より組織化されたコードを実現するために新しいパラダイムに移行する必要がありました。

この必要性の例としては、スクレイピング タスク中に、最初は処理方法を知っていたタイプの特定のデータをキャプチャする必要があったときがありましたが、その後突然、そのデータが存在しなかったり、キャプチャ中に別のタイプで表示されたりしました。

その結果、データが int か string かをチェックするために、いくつかのif ブロックとtry and catchブロックを追加する必要がありました...後で、何もキャプチャされていない、None などであることがわかりました。辞書を使用して、最終的に保存することになりました次のような状況におけるいくつかの興味のない「デフォルト データ」:
リーリー

そうですね、紛らわしいエラー メッセージは確かに表示されないようにする必要がありました。

これが Python が動的である仕組みです。変数の型は、操作している型をより明確にする必要があるまで、いつでも変更できます。その後、突然大量の情報が表示され、IDE が型ヒントと興味深い

pydanticライブラリをサポートしてくれるので、データ検証にどのように対処できるかを読んでいます。

データ操作などのタスクや新しいパラダイムで、型を明示的に宣言したオブジェクトと、これらの型を検証できるライブラリを使用できるようになりました。何か問題が発生した場合、より詳しく説明されたエラー情報を確認することで、デバッグが容易になります。


ピダンティック

ということで、これが Pydantic のドキュメントです。さらにご質問がございましたら、いつでもご相談ください。

基本的には、すでにご存知のとおり、次のことから始めます:


リーリー

そして、仮に、これらの電子メールを含むソースから電子メールをキャプチャしたいとします。そのほとんどは、「xxxx@xxxx.com」のようになります。ただし、場合によっては、「xxxx@」または「xxxx」のように表示される場合があります。キャプチャすべき電子メールの形式については何の疑いもないので、この電子メール文字列を Pydantic で検証します:


リーリー

pip install pydantic[email] でインストールされたオプションの依存関係「email-validator」を使用していることに注意してください。コードを実行すると、ご存知のとおり、無効な電子メール形式「teste@teste」:

でエラーが表示されます。
リーリー

独自の検証を作成するのと同じように、オプションの依存関係を使用してデータを検証することは興味深いものであり、Pydantic では

field_validatorを介してこれを許可します。したがって、account_id はゼロより大きい正の値でなければならないことがわかります。異なる場合は、Pydantic が例外、つまり値のエラーがあったことを警告するのが興味深いでしょう。コードは次のようになります:
リーリー リーリー

ここで、正しい値を使用してコードを実行します:


リーリー リーリー

そうですか?!

ネイティブの「dataclasses」モジュールについても読みました。これはもう少し単純で、Pydantic といくつかの類似点があります。ただし、検証が必要なより複雑なデータ モデルを処理するには、Pydantic の方が適しています。データクラスは Python にネイティブに含まれていますが、Pydantic は、少なくとも、まだ含まれていません。

以上がPydantic • データの検証とサニタイズに対処するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!