python 序列化json

原创 Laughing  2018-02-03 23:38  阅读 85 次 评论 0 条

对于字典类型,我们可以直接序列化

  1. dict1 = {  
  2.     'name':'laughing',  
  3.     'age':27,  
  4.     'score':100  
  5. }  
  6. result1 = json.dumps(dict1) #{"name": "laughing", "age": 27, "score": 100}  
  7. print(result1) #{'name': 'laughing', 'age': 27, 'score': 100}  
  8. print(json.loads(result1))  

对象序列化

对于类的序列化,如果我们直接序列化实例,会提示一下错误

  1. import json  
  2. class Student:  
  3.     def __init__(self,name,age,score):  
  4.         self.name=name  
  5.         self.age=age  
  6.         self.score=score  
  7.   
  8. stu = Student('laughing',27,100)  
  9. print(json.dumps(stu))  
TypeError: Object of type 'Student' is not JSON serializable
我们可以通过将类转换成字典,然后进行序列化

我们通过lambda表达式实现,如下

  1. import json  
  2. class Student:  
  3.     def __init__(self,name,age,score):  
  4.         self.name=name  
  5.         self.age=age  
  6.         self.score=score  
  7.   
  8. stu = Student('laughing',27,100)  
  9. print(json.dumps(stu,default=lambda obj:obj.__dict__))  

输出信息如下

  1. {"name": "laughing", "age": 27, "score": 100}  
本文地址:https://www.lisen.me/python-serilize-json.html
版权声明:本文为原创文章,版权归 木子网 所有,欢迎分享本文,转载请保留出处!

发表评论


表情