Analice JSON y almacene datos en Python Class

Estos son mis datos JSON

[ { "id":1, "name":"abc", "phone": "12345", "Charecteristics": [ { "id":1, "name":"Good Looking", "rating": "Average", } { "id":2, "name":"Smart", "rating": "Excellent", } ] }, { ... }, { ... } ] 

Tengo dos clases en Python

 class Character(object): id = 0 name = "" rating = "" class Person(object): id = 0 name = "" phone = "" Characteristics = [] 

Necesito analizar los datos JSON e instanciar las clases apropiadas. Las clases se explican por sí mismas: es decir, la persona tiene un conjunto de clases de caracteres.

¿Cómo puedo crear una instancia de estos y almacenar datos de manera adecuada?

Además, ¿cómo voy a acceder a datos personales particulares? Es decir, detalles y características de la persona.

    Echa un vistazo al colador ; hace que sea muy fácil convertir una estructura de datos JSON en objetos Python.

    Se define un esquema:

     import colander class Characteristic(colander.MappingSchema): id = colander.SchemaNode(colander.Int(), validator=colander.Range(0, 9999)) name = colander.SchemaNode(colander.String()) rating = colander.SchemaNode(colander.String()) class Characteristics(colander.SequenceSchema): characteristic = Characteristic() class Person(colander.MappingSchema): id = colander.SchemaNode(colander.Int(), validator=colander.Range(0, 9999)) name = colander.SchemaNode(colander.String()) phone = colander.SchemaNode(colander.String()) characteristics = Characteristics() class Data(colander.SequenceSchema): person = Person() 

    luego pase su estructura de datos JSON usando lo siguiente:

     deserialized = Data.deserialize(json.loads(json_string)) 

    Si estás escribiendo en python 3.6+, lo más fácil es usar marshmallow-dataclass :

     from marshmallow_dataclass import dataclass from typing import List @dataclass class Character: id : int name : str rating : str @dataclass class Person: id : int name : str phone : str characteristics : List[Character] my_person, _ = Person.Schema().loads(json_str)