Github: https://github.com/Julian/jsonschema
jsonschema
jsonschema
は、Python用のJSON Schemaの実装です(Python 3を含む2.7+をサポートしています)。
>>> from jsonschema import validate
>>> # A sample schema, like what we'd get from json.load()
>>> schema = {
... "type" : "object",
... "properties" : {
... "price" : {"type" : "number"},
... "name" : {"type" : "string"},
... },
... }
>>> # If no exception is raised by validate(), the instance is valid.
>>> validate({"name" : "Eggs", "price" : 34.99}, schema)
>>> validate(
... {"name" : "Eggs", "price" : "Invalid"}, schema
... ) # doctest: +IGNORE_EXCEPTION_DETAIL
Traceback (most recent call last):
...
ValidationError: 'Invalid' is not of type 'number'
コンソールからも使用できます:
$ jsonschema -i sample.json sample.schema
特徴
- スキーマのドラフト3 と ドラフト4を完全にサポート
- すべての検証エラーを繰り返し報告できるレイジー検証 。
- 小型で拡張可能
- どのプロパティまたは項目が検証に失敗したかのプログラムによるクエリ 。
リリースノート
バージョン2.6.0はPython 2.6.X(ha ha)のサポートを廃止し、エラーメッセージにはいくつかの改良が加えられており、 ErrorTree
バグ修正も含まれています。
テストスイートの実行
あなたがtox
インストールしている場合(おそらくpip install tox
やパッケージマネージャー経由で)、ソースチェックアウトのディレクトリにjsonschema
を実行すると、 jsonschema
のすべてのバージョンのPythonのjsonschema
ます。 それぞれのバージョンでテストを実行するには、それらのバージョンをすべてインストールする必要があります。そうでない場合、 tox
はそのバージョンのテストをスキップ(および失敗)します。
もちろん、好きなテストランナーと一緒に1つのバージョンでテストを実行することも自由です。 テストはjsonschema.tests
パッケージにあります。
ベンチマーク
jsonschema
のベンチマークはperfを利用しています。
それらを実行するには、 tox -e perf
を使用するか、またはperf
コマンドを外部で呼び出します( jsonschema
両方がインストールされていることを確認した後)。
$ python -m perf jsonschema/benchmarks/test_suite.py --hist --output results.json
以前の実行と比較するには、次のコマンドを使用します。
$ python -m perf compare_to --table reference.json results.json
詳細はperf
ドキュメントを参照してください。
コミュニティ
この実装のためのメーリングリストがGoogleグループにあります。
参加して自由に質問をしてください。
貢献する
私はジュリアン・バーマンです。
jsonschema
はGitHubにあります 。
GitHub経由で連絡してください。寄付するものがあれば、大歓迎です!
tos9
を含むさまざまなチャンネルのFreenode(nick: tos9
)で私を見つけることもできます。
圧倒的に感謝しているのであれば、私のGitHubプロフィールの電子メールで、 Gittipのビールのお金で、またはGoogle Wallet経由で私に腹を立てることができます。