Python
 Computer >> コンピューター >  >> プログラミング >> Python

JSONオブジェクトからPythonクラスを作成するにはどうすればよいですか?


jsonschemaの上に構築されたpython-jsonschema-objectsを使用できます。python-jsonschema-objectsは、Pythonで使用するためのJSONスキーマへの自動クラスベースバインディングを提供します。

次のようなサンプルのjsonスキーマがあります

schema = '''{     "title": "Example Schema",     "type": "object",     "properties": {         "firstName": {             "type": "string"         },         "lastName": {             "type": "string"         },         "age": {             "description": "Age in years",             "type": "integer",             "minimum": 0         },         "dogs": {             "type": "array",             "items": {"type": "string"},             "maxItems": 4         },         "gender": {             "type": "string",             "enum": ["male", "female"]         },         "deceased": {             "enum": ["yes", "no", 1, 0, "true", "false"]             }     },     "required": ["firstName", "lastName"] } '''
スキーマオブジェクトをクラスに変換する

 import python_jsonschema_objects as pjs  
 builder = pjs.ObjectBuilder(schema)  
 ns = builder.build_classes()  
 Person = ns.ExampleSchema  
 jack = Person(firstName="Jack", lastName="Sparrow")  
 jack.lastName    
 example_schema lastName=Sparrow age=None firstName=Jack 
検証-

jack.age = -2 python_jsonschema_objects.validators.ValidationError: -2 was less or equal to than 0

  1. Python名前空間を作成するにはどうすればよいですか?

    各パッケージ、モジュール、クラス、関数、およびメソッド関数は、変数名が解決される「名前空間」を所有しています。関数、モジュール、またはパッケージが評価される(つまり、実行が開始される)と、名前空間が作成されます。したがって、名前空間を作成する場合は、関数を呼び出すか、オブジェクトをインスタンス化するか、モジュールをインポートするか、パッケージをインポートするだけです。たとえば、名前空間というクラスを作成できます。そのクラスのオブジェクトを作成すると、基本的に名前空間が作成されます。 例 このクラスでは、名前空間に付加する変数名を渡すこともできます。たとえば、 class Namespace:

  2. Python関数からjsonオブジェクトを返す方法は?

    指定されたPythonディクショナリを使用して、次のようにpython関数からjsonオブジェクトを返します。 例 import json a = {'name':'Sarah', 'age': 24, 'isEmployed': True } # a python dictionary def retjson(): python2json = json.dumps(a) print python2json retjson() 出力 {"age": 24, "isEmployed": tru