第42天python学习内置 模块json pickle shelve XML

json  pickle  shelve  XML内置模块

#Json简介:Json,全名 JavaScript Object Notation,是一种轻量级的数据交换格式。Json最广泛的应用是作为AJAX中web服务器和客户端的通讯的数据格式

#古老的方法:处理把字典转换成字符串,在把字符串转换成字典
# dic='{"name":"zhangshan"}'
# f=open("hello","w")#文件名为:hello,
# f.write(dic)#把内容zhangshan写入


# f_read=open("hello","r")
# data=f_read.read()
# print(type(data))#打印类型为str
# data=eval(data)#转换输出类型为字典————————函数,类等不支持
# print(data["name"])#使用key值取出value值,zhangshan


#新式方法json方法处理数据交换:json不支持类的数据
import json
# dic={"name":"zhangshan"}
# dic_str=json.dumps(dic)#把字典使用json.dumps转换成字符串
# f=open("new_hello","w")#打开文件
# f.write(dic_str)#写入内容
# print(dic_str,type(dic_str))#{"name": "zhangshan"} <class 'str'>

# f_read=open("new_hello","r")
# data=json.loads(f_read.read())#使用json.loads把字符串直接转换成字典
# print(data["name"])

#json.dumps作用:把整型 字符串(单引号) 列表变为双引号的字符串
# import json
# data=8
# data1=json.dumps(data)
# print(data1,type(data1))
#
# data=[1,2,3]
# data2=json.dumps(data)
# print(data2,type(data2))
#
# data='hello'
# data3=json.dumps(data)
# print(data3,type(data3))
#
# dic={"name":"zhangshan"}
# data=json.dumps(dic)#把字典直接转换成字符串
# print(data,type(data))

#背景情况:先新建一个文件里面放符合json规范,使用双引号的文本。文件内容:{"name": "zhangshan"}
import json
with open("new_hello","r") as f:
data=f.read()
data=json.loads(data)#使用json.loads把双引号的内容转换成字典
print(data["name"])

#备注:如个文件内容是:{'name': "zhangshan"}单引号则以上代码不能取出值,因为违反了json规范文本内容是双引号

#pickle和json使用的方法dumps() loads()  .但是pickle可以对函数类进行使用,但是使用很少
#pickle处理成一个字节

import pickle

dic={'name':'zhangshan','age':23,'sex':'male'}
print(type(dic))#<class 'dict'>

data=pickle.dumps(dic)
print(data,type(data))# <class 'bytes'>

# f=open("系列化对象_pickle","wb")#注意写入str,wb是写入bytes
# f.write(data)

f=open("系列化对象_pickle","rb")#注意写入str,wb是写入bytesr
data=f.read()
data1=pickle.loads(data)
print(data1["age"])
 
一.import json
1.通过模块json.loads吧字符串转换成Python的基本数据类型,,通过json反序列化时一定记得里面是双引号。
2.通过模块json.dumps吧python基本数据类型转换成字符串。
3.通过json。dump吧Python基本数据类型转换成字符串并写入一个文件里面。
4.在文件里面读出字符串并转换成Python基本数据类型。

二.import  pickle
1.通过模块pickle.dumps吧python基本数据类型转换成字符串(只有Python认识的字符编码)
2.通过模块pickle.loads吧字符串(只有Python认识的字符编码)转换成Python基本数据类型
3.通过模块pickle.dump吧python基本数据类型转换成字符串(只有Python认识的字符编码)并写入文件。
4.通过模块pickle.load从文件里面吧吧字符串拿出来(只有Python认识的字符编码)转换成Python基本数据类型。
5.通过模块pickle可能python2.7序列化的用3.5反序列化不回来。

三.json 和pickle的区别
1.json和pickle的区别是前者只支持python基本的数据类型而pickle 支持所有的Python数据类型。
2.json 更合适跨语言操作,字符串基本数据类型。
3.pickle,可以对python所有类型序列化,仅适用于python


猜你喜欢

转载自www.cnblogs.com/jianchixuexu/p/11621431.html
今日推荐