之前看其他朋友的博客的时候总觉得json,picle 模块很难理解,今天得空自己敲了一些命令突然发现很简单,看来还是得动手多实践实践。。。
废话不多说,直接上代码,都是一些简单的例子:
import json ##dumps/dump 序列化--可以格式化所有的基本数据类型为字符串;load/loads 反序列化 ##将整型转化为字符串 # i1 = 2 # print(type(i1),i1) # j11 = json.dumps(i1) # print(type(j11),j11) ##将字典转化为字符串 # dic1 = {"name":"tt","age":34,"famale":"M"} # print(type(dic1),dic1) # j22 = json.dumps(dic1) # print(type(j22),j22) ##将元组转化为字符串 # tru1 = (1,2,5,"ad","23c") # print(type(tru1),tru1) # j33 = json.dumps(tru1) # print(type(j33),j33) ##dump---需要将序列化的结果写入文件中 dic2 = {"name": "tt", "age": 34, "famale": "M"} # a = open('fs.txt','w') # j44 = json.dump(dic2,a) # print(j44) ##或者(推荐) with open('fs.txt','w',encoding='utf-8') as f: json.dump(dic2,f) ###load,loads举例 ----loads只完成了反序列化;load接收文件描述符,完成读取文件和反序列化 # dic2 = '{"name": "tt", "age": 34, "famale": "M"}' # print(type(dic2),dic2) #jj1 = json.loads('dic2') ##将字符串类型转化为字典类型,前提是字符串里面的格式和字典格式匹配 # jj1 = json.loads(dic2) # print(type(jj1),jj1) # with open("fs.txt","r",encoding='utf-8') as f : # aa = json.load(f) # print(type(aa),aa)
模块方法(load,loads,dump,dumps)总结:(平时一般用dumps,loads 比较多)
1.json序列化方法: dumps:无文件操作(纯粹的序列化操作,将其他类型转化为字符串类型) dump:需要将序列化的结果写入文件中
2. json反序列化方法:loads:无文件操作 (loads只完成了反序列化) load: 读文件+反序列化
json 和 picle 模块的区别:
json模块和picle模块都有 dumps、dump、loads、load四种方法,而且用法一样。区别是json模块序列化出来的是格式在其它编程语上是通用的,就是普通的字符串;
而picle模块序列化出来的只有python可以认识,其他语言的会出现乱码现象,另一方面,picle可以序列化函数,功能比json强大