辨别Python中load和loads的小技巧

辨别Python中load和loads的小技巧如使用json.dumps序列化的对象d_json=json.dumps({‘a‘:1,‘b‘:2}),在这里d_json是一个字串‘{“b”:2,”a”:1}‘d=json.loads(d_json)#{b”:2,”a”:1},使用load重新反序列化为dict,load针对文件句柄,如本地有一个json文件a.json则可以d=json.load(open(‘a.json‘))相应的,dump就是将内置类型序列化为json对象后写入文件。

一句话,load通过json.load(open(‘*.json’))这样的格式,从文件句柄中打开文件,加载到Python的变量中,并以字典的格式转换。而loads必须对于Python内存中的序列化对象转换成字符串。

因此,load和loads都是实现“反序列化”,区别在于(以Python为例)。loads针对内存对象,即将Python内置数据序列化为字串。如使用json.dumps序列化的对象d_json=json.dumps({‘a‘:1, ‘b‘:2}),在这里d_json是一个字串‘{“b”: 2, “a”: 1}‘

d=json.loads(d_json)  #{ b”: 2, “a”: 1},使用load重新反序列化为dict,load针对文件句柄,如本地有一个json文件a.json则可以d=json.load(open(‘a.json‘))相应的,dump就是将内置类型序列化为json对象后写入文件。

测试:

l1 = '[1,2,3,4]'
d1 = '{"k1":"v1"}'
print(type(l1))
print(type(d1))

输出:

<class 'str'>
<class 'str'>
ret = json.loads(l1)
print(ret,type(ret))
ret = json.loads(d1)
print(ret,type(ret))

输出:


[1, 2, 3, 4] <class 'list'>
{'k1': 'v1'} <class 'dict'>[1, 2, 3, 4] <class 'list'>
{'k1': 'v1'} <class 'dict'>

今天的文章辨别Python中load和loads的小技巧分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/6947.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注