自定义对象和json互转
有一次写side project时,用json.dumps()方法对UserInfo对象进行序列化,却报错了。Object type ofUserInfo is not JSON serializable.经过一番探索发现,json.dumps()方法只能序列化简单对象,也就是python自带的一些数据类型。比如dict,list,tuple,str,int,long,float等等。而UserInfo是我自定义的对象,也就不能序列化了。使用对象.__dict__即可把对象转成字典。(我这里是UserInfoDict = UserInfo.__dict__),然后再用json.dumps()方法序列化就可以了。顺便也查了下json转自定义对象的方法。
json转自定义对象
importjsonclassOok():name=strdef__init__(self,d):self.__dict__=dif__name__=='__main__':data={'name':'ACME','shares':100,'price':{'name':'ACME'}}json_str=json.dumps(data)result=json.loads(json_str,object_hook=Ook)print(result.name)print(result.shares)print(result.price.name)
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。