Python: Json串反序列化为自定义类对象
生活随笔
收集整理的這篇文章主要介紹了
Python: Json串反序列化为自定义类对象
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近剛接觸到python,就想到了如何反序列化json串。網上找了一下,大部分都是用json模塊反序列化為python數據結構(字典和列表)。如果對json模塊不了解的參考菜鳥教程。然后我在此基礎上將python數據轉換為了自定義類對象。
下面是測試代碼及運行結果:
運行結果:
kid100The 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 與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的Python: Json串反序列化为自定义类对象的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python链家网高并发异步爬虫asyn
- 下一篇: Python用@property使类方法