阅读 81

json模块中 序列化与反序列化

1.什么是序列化&反序列化

内存中数据类型---->序列化------>特定的格式(json格式或者pickle格式)

互相转换方法1.
res=eval("{‘egon‘:111}")
print(res)
print(type(res)) 

#{‘egon‘: 111}


res = str({‘egon‘:666})
print(res)
print(type(res))

#{‘egon‘: 666}

2、为何要序列化

#    序列化指的是把内存的数据类型转换成一个特定的格式的内容
#    该格式的内容
1、可用于存储=>用于存档
2、传输给其他平台使用=>跨平台数据交互
  python   —————————    java
  列表     特定的格式      数组
3.json 验证:格式兼容的是所有语言通用的数据类型。并不能识别所有语言

强调:
    针对用途1的特定格式,一种专用格式,只有python能够识别:pickle
    针对用途2的特定格式,一种通用,能够被所有语言识别的格式:json
    针对json中,数据类型必须加上双引号“” 否则会报错

3、如何序列化与反序列化

序列化

import json

res = json.dumps([1,‘aaa‘,True,False])
print(res,type(res)) #  "[1,"aaa",true,false]"  注意:双引号


反序列化

import json

res = json.dumps([1,‘aaa‘,True,False])
l = json.load(res)
print(l,type(l))  #[1,‘aaa‘,True,False]


序列化的结果写入文件的方法
1.复杂方法
import json

res = json.dumps([1,‘aaa‘,True,False])
with open(‘test.json‘,mode=‘wt‘,encoding=‘utf-8‘)as f:
    f.write(res)
2.简单方法
with open(‘test.json‘,mode=‘wt‘,encoding=‘utf-8‘)as f:
    json.dump([1,‘aaa‘,True,False],f)
    #  "[1,"aaa",true,false]" 


从文件读取json格式的字符串进行反序列化操作方法
1.复杂方法
with open("test.json",mode="rt",encoding="utf-8") as f:
    json_res = f.read()
    res = json.loads(json_res)
    print(res,type(res))
    #[1, ‘aaa‘, True, False] 
   
2.简单方法
with open("test.json",mode="rt",encoding="utf-8") as f:
    l=json.load(f)
    print(l,type(l))

4. dumps/loads 区别

json.dumps(obj)	将python数据转化为json
json.loads(s)	将json数据转换为python的数据
json.dump(obj, fp)	转换为json并保存到文件中
json.load(fp)	从文件中读取json,并转化为python数据

原文:https://www.cnblogs.com/lyz666/p/14982165.html

文章分类
代码人生
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐