dumps与loads
相同点
都是在内存中转换
不同点
- dumps
把特定的对象序列化处理为字符串,即把dict或list转换为str
- loads把字符串通过反序列化转换成list和dict
注意:如果外形不是list或者dict的形状,则不会转换成功的,这里必须要注意,字符串的外面的引号必须是“单引号”,内部必须是双引号,如果不是这样 ,json模块会报错的
dump与load
相同点
都是在文件中处理
不同点
- dump
dump是把序列化后的字符串写到一个文件中
- load
load是从一个一个文件中读取文件
代码示例
```
import json,pytest #将dict或list转化成stringdef test_dumps(sth): return json.dumps(sth) #将string转换成dict或listdef test_loads(sth): return json.loads(sth) #往json文件写入内容def test_dump(sth,file): json.dump(sth,open(file,‘w‘)) json_object = json.load(open(file,‘r‘)) return json_object #无法追加内容,会把之前的json文件内容覆盖 #读取json文件def test_load(file): with open(file,encoding=‘utf-8‘) as f: json_object = json.load(f,encoding=‘utf-8‘) return json_object def test_add_json(): pass if __name__ == ‘__main__‘: dict={‘k1‘:‘v1‘} dumps_sth=test_dumps(dict) print(dumps_sth) print(type(dumps_sth)) print(‘\n‘) str=‘{"k1": "v1"}‘ print(test_loads(str)) print(type(test_loads(str))) print(‘\n‘) file_path=r"E:\testdata\test.json.py" print(test_load(file_path)) print(type(test_load(file_path))) print(‘\n‘) d1 = {‘age‘:18} print(test_dump(d1,file_path)) print(type(test_dump(d1,file_path)))
```
原文地址:https://www.cnblogs.com/echoqi/p/10672906.html
时间: 2024-11-08 22:07:51