Heim > Backend-Entwicklung > Python-Tutorial > Benutzerdefiniertes Python-Klassenobjekt, serialisiert in einen Json-String (Codebeispiel)

Benutzerdefiniertes Python-Klassenobjekt, serialisiert in einen Json-String (Codebeispiel)

不言
Freigeben: 2019-03-06 17:28:08
nach vorne
3420 Leute haben es durchsucht

Der Inhalt dieses Artikels befasst sich mit der Serialisierung benutzerdefinierter Python-Klassenobjekte (Codebeispiele). Ich hoffe, dass er Ihnen helfen wird.

Wir haben Python schon einmal implementiert: Json-Strings in benutzerdefinierte Klassenobjekte deserialisieren. Dieses Mal haben wir die Json-Serialisierung implementiert.

Der Testcode und die Ergebnisse lauten wie folgt:

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按回车键退出。")
Nach dem Login kopieren

Laufergebnisse:

kid100The Little Prince
{"books": [{"name": "math", "type": "study"}, {"name": "The Little Prince", "type": "literature"}], "id": "123", "name": "kid", "score": {"chinese": 98, "math": 100}}

按回车键退出。
Nach dem Login kopieren

Der Implementierungscode lautet wie folgt:

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 &#39;list&#39;>":
        # value 为列表
        for index in range(0, value.__len__()):
            value[index] = value2py_data(value[index])
    return value
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonBenutzerdefiniertes Python-Klassenobjekt, serialisiert in einen Json-String (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:cnblogs.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage