2012-01-23 4 views
4

Django/PythonでJSONデータを検証する最適な方法は何ですか?Django/pythonがJSONを検証する

渡されるデータ/パラメータを検証できるDjango FormMixinクラスのようなクラスを作成するのが最善でしょうか?

これを行うにはどのようなDRY方法が最適ですか?私が活用できる既存のアプリはありますか?

JSONデータを取り込んで、モデルインスタンスにいくつかのアクション/更新を実行したいと考えています。私が取り込んでいるデータはユーザーが生成したものではありません。つまり、IDとフラグ(テキストなし)なので、Formsを使用したくありません。

+0

文字列を検証して有効なJSONであることを確認しますか? JSONオブジェクトを取得し、データ型が正しいことを確認しますか(たとえば、data.intValは整数値です)。または、他の何か? –

+0

私はそれらが有効なデータ型であることを保証したいが、正しいキーと値のペアが含まれていることを確認する。しかし、私はこれを行う一般的なDRYの方法が必要です。なぜなら、そこに存在する必要があるキーと値のペアは、処理しているモデルに基づいて変化するからです。 Djangoフォームと同じように。かわいいまともな図書館。 –

答えて

4

validictoryは、JSONスキーマにJSONを検証します。できます。もちろん、あなたはあなたがやりたいことに対して少しだけかもしれないjsonであなたのスキーマを定義する必要がありますが、それはその場所を持っています。

+0

。よく調べる価値があります – Eldamir

1

私はこのhttps://github.com/j2labs/dictshield

DictShieldは、データベースに依存しないモデリング・システムであるためDictShieldという名前のPythonライブラリをお勧めします。データのモデル化、検証、形状変更を簡単に行うことができます。

JSONの検証を行うためのサンプルでもあります:

ユーザー入力の検証のは、我々は、ユーザーからこのJSON文字列を取得しましょう。

{ "バイオ": "Pythonの、アーランとギター!"、 "秘密": "e8b5d682452313a6142c10b045a9a135"、 "名": "J2D2"}:

私たちはこのようになりますいくつかのサーバーコードを書くかもしれません

json_string = request.get_arg('data') 
user_input = json.loads(json_string) 
user.validate(**user_input) 
+0

Dictshieldは非常にいいようですが、その説明から、それを検証するだけでなく、データをモデル化する(また検証もあります)ライブラリです。 – PuercoPop