Python-Json-Pickle

2021-04-18  本文已影响0人  千年积木
from os import write


print("===========================序列化-反序列化===============================")
#暂时这么理解

#序列化:将数据从内存持久化保存到硬盘的过程
#反序列化:将数据从硬盘加载到内存的过程

#write时,只能写入字符串或者二进制
#字典 列表 数字 等都不能直接写入到文件当中

#1将数据转换成字符串:repr / str
#2将数据转换成二进制
#3将数据转换成 Json:本质是字符串

file = open("Pfile/Pfile13.txt","w",encoding="utf8")
file.write("nihao caonima de ")
names = ["张发","找死","曹尼玛","给车","算法","算法","儿童","儿童"]
file.write(names.__repr__())
file.write(str(names))
file.close()


#json里将数据持久化有2个方法:
#dumps:将数据转换成为json字符串,不会将数据保存到文件里
#dump:将数据转换成为json字符串,会将数据保存到文件里

import json
file = open("Pfile/Pfile14-json.txt","w",encoding="utf8")
names = ["json","Hello","gg","hh","jj","kk","ll","ii"]
x = json.dumps(names) #dumps:将数据转换成字符串,不会将数据保存到文件里
file.write(x)          #手动写入文件
print(x)
file.close()


file = open("Pfile/Pfile15-json.txt","w",encoding="utf8")
names = ["json","Hello","gg"]
x = json.dump(names,file) #dumps:将数据转换成字符串,会将数据保存到文件里,自动写入文件
file.close()

#json里将数据反序列化有2个方法:
#loads:将json字符串加载成为Python里的数据
#load:读取文件,把读取的内容加载成为Python里的数据

xx = '{"name":"world","good":"bad","love":90}'
p = json.loads(xx)   #loads:将json字符串加载成为Python里的数据
print(p["name"])

file = open("Pfile/Pfile15-json.txt","r",encoding="utf8")
yy = json.load(file)  #load:读取文件,把读取的内容加载成为Python里的数据
print(yy)
print(yy[0])


print("===========================Pickle模块使用===============================")
#json:将Python里的数据(str/list/tuple/dict/int/float/bool/None)等转化为对应的Json字符串
#pickle:将Python里任意的对象转换为二进制

import pickle

#序列化  dumps:转化成二进制   dump:转化成二进制并写入到文件
#反序列化 loads:将二进制转化成为Python数据   load:读取文件二进制数据转化成为python


names = ["诸葛亮","json","Hello","gg","你好"]

#dumps 
file = open("Pfile/Pfile16-pickle.txt","wb")
b_names = pickle.dumps(names)
file.write(b_names) #写入的是二进制
file.close()

#dump
file = open("Pfile/Pfile16-pickle.txt","wb")
pickle.dump(names,file)
file.close()


#loads 
file = open("Pfile/Pfile16-pickle.txt","rb")
x = file.read()
y = pickle.loads(x)
print(y)
file.close()

#load
file = open("Pfile/Pfile16-pickle.txt","rb")
y = pickle.load(file)
file.close()
print(y)


print("===========================Pickle 与 json区别===============================")
#pickle 用来将数据原封不动的转换成为二进制,只能用Python读  不能跨平台
#json 只能保存部分数据(基本数据类型),用在不同平台传输数据,夸平台
上一篇下一篇

猜你喜欢

热点阅读