Maison >développement back-end >Tutoriel Python >Objet de classe personnalisé Python sérialisé dans une chaîne Json (exemple de code)
Le contenu de cet article concerne la sérialisation des objets de classe personnalisés Python en chaînes Json (exemples de code). Il a une certaine valeur de référence. Les amis dans le besoin pourront s'y référer.
Nous avons déjà implémenté Python : désérialiser les chaînes Json en objets de classe personnalisés. Cette fois, nous avons implémenté la sérialisation Json.
Le code du test et les résultats sont les suivants :
import Json.JsonTool class Score: math = 0 chinese = 0 class Book: name = '' type = '' class Student: id = '' name = '' score = Score() books = [Book()] student = Student() json_data = '{"id":"123", "name":"kid", "score":{"math":100, "chinese":98}, ' \ '"books":[{"name":"math", "type":"study"}, ' \ '{"name":"The Little Prince", "type":"literature"}]} ' Json.JsonTool.json_deserialize(json_data, student) print(student.name) print(student.score.math) print(student.books[1].name) student_str = Json.JsonTool.json_serialize(student) print(student_str) input("\n按回车键退出。")
Résultats d'exécution :
kid100The Little Prince {"books": [{"name": "math", "type": "study"}, {"name": "The Little Prince", "type": "literature"}], "id": "123", "name": "kid", "score": {"chinese": 98, "math": 100}} 按回车键退出。
Le code d'implémentation est le suivant :
def json_serialize(obj): obj_dic = class2dic(obj) return json.dumps(obj_dic) def class2dic(obj): obj_dic = obj.__dict__ for key in obj_dic.keys(): value = obj_dic[key] obj_dic[key] = value2py_data(value) return obj_dic def value2py_data(value): if str(type(value)).__contains__('__main__'): # value 为自定义类 value = class2dic(value) elif str(type(value)) == "<class 'list'>": # value 为列表 for index in range(0, value.__len__()): value[index] = value2py_data(value[index]) return value
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!