之前写 py 关于 JSON 的序列化都是用字典来操作,比较不方便,今儿实现下 json->object 的序列化方式,发现还挺方便,分享给大家。py 菜鸟,大佬轻喷。。。使用方法如下:
核心类:
class JsonClass(object):
def to_json_string(self):
return json.dumps(self, default=lambda obj: obj.__dict__)
def from_json_string(self, json_string):
data = json.loads(json_string)
for key in self.__dict__.keys():
setattr(self, key, data[key])
使用方法:
class Task(JsonClass):
def __int__(self, id=None, name=None, timestamp=None):
self.id = id
self.name = name
self.timestamp = timestamp
if __name__ == '__main__':
# 序列化
task = Task(1, "a", time.time())
print(task.to_json_string())
# 反序列化
json_string = '{"timestamp": 1560948789.5293133, "name": "a", "id": 1}'
task = Task()
task.from_json_string(json_string)
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.