您现在的位置是:主页 > news > 可以自己做logo的网站/公司网站建设服务机构

可以自己做logo的网站/公司网站建设服务机构

admin2025/6/29 1:51:37news

简介可以自己做logo的网站,公司网站建设服务机构,Ecshop网站建设总结,顺德新网站制作最近刚接触到python,就想到了如何反序列化json串。网上找了一下,大部分都是用json模块反序列化为python数据结构(字典和列表)。如果对json模块不了解的参考菜鸟教程。然后我在此基础上将python数据转换为了自定义类对象。 下面是测试代码及运行结果&…

可以自己做logo的网站,公司网站建设服务机构,Ecshop网站建设总结,顺德新网站制作最近刚接触到python,就想到了如何反序列化json串。网上找了一下,大部分都是用json模块反序列化为python数据结构(字典和列表)。如果对json模块不了解的参考菜鸟教程。然后我在此基础上将python数据转换为了自定义类对象。 下面是测试代码及运行结果&…

    最近刚接触到python,就想到了如何反序列化json串。网上找了一下,大部分都是用json模块反序列化为python数据结构(字典和列表)。如果对json模块不了解的参考菜鸟教程。然后我在此基础上将python数据转换为了自定义类对象。

    下面是测试代码及运行结果:

import Json.JsonToolclass Score:math = 0chinese = 0class 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)input("\n按回车键退出。")

运行结果:

kid
100
The Little Prince按回车键退出。

 

    实现代码如下:

import jsondef json_deserialize(json_data, obj):py_data = json.loads(json_data)dic2class(py_data, obj)def dic2class(py_data, obj):for name in [name for name in dir(obj) if not name.startswith('_')]:if name not in py_data:setattr(obj, name, None)else:value = getattr(obj, name)setattr(obj, name, set_value(value, py_data[name]))def set_value(value, py_data):if str(type(value)).__contains__('.'):# value 为自定义类
        dic2class(py_data, value)elif str(type(value)) == "<class 'list'>":# value为列表if value.__len__() == 0:# value列表中没有元素,无法确认类型value = py_dataelse:# value列表中有元素,以第一个元素类型为准child_value_type = type(value[0])value.clear()for child_py_data in py_data:child_value = child_value_type()child_value = set_value(child_value, child_py_data)value.append(child_value)else:value = py_datareturn value

 

转载于:https://www.cnblogs.com/magic8sky/p/10475704.html