编程语言
首页 > 编程语言> > 4-3python语法基础-内置模块-json模块

4-3python语法基础-内置模块-json模块

作者:互联网

###

序列化模块

# 序列化模块

#############################################################
# 序列化是什么?

# 现在的序列化都是转向一个字符串数据类型,
# 我们说的序列就是字符串,

# 为什么要千方百计的转换成为字符串呢?
# 如果一个字典{"k":"v"}为什么要转成字符串
# 我往文件或者数据库里面写内容的时候是不能写入字典的,可以写入字符串,
# 还有在网络上传输的时候,我需要传递的是byte类型,怎么把字典转换成为一个byte类型呢,
# 就要先转换为字符串,然后字符串转换为byte类型,
# 基本就是这两种情况,需要序列化,

# 这种从数据类型转为字符串,就是序列换,
# 把字符串转换为数据类型的操作,就是反序列化,


################################################################
# json模块

# 现在有一个模块就是json模块, 这是非常重要的一个模块
# 你和别人进行数据交换的时候一定要使用这个,
# 还有这个模块pickle,这个也可以序列化,
# 这个模块shelve,没有这个模块不影响,这是你要知道,

# 不是所有的类型都能通过json模块  转换为字符串的,
# 这是json模块的弊端,但是json是一个通用的模块,别的语言可以解开,

# pickle这个模块可以把所有的数据类型,转换成为字符串形式,
# 但是有问题,序列化的内容只能Python来解开,别的语言不识别,
# 而且反序列化需要依赖Python代码,

# shelve,使用句柄直接操作非常方面,但是这个模块是一个新模块,


##########################################################################

# 序列化代码
# 我就是想要把一个字典转换成为一个字符串,
# import json
# dic = {"k":'v'}
# print(type(dic),dic)
# ret = json.dumps(dic)  # 这就是序列化
# print(type(ret),ret)
# ret =json.loads(ret)
# print(type(ret),ret)
# dumps是序列化方法,loads是反序列化方法,

# 可以序列化的数据类型,数字,字符串,列表,字典,元组,
# 但是在json里面就只认识列表和字典,


############################################
# json还有两个方法, dump和load
# 要使用这两个,需要打开一个文件,

# dic = {1:"a",2:"b"}
# f = open("fff","w",encoding="utf-8")
# json.dump(dic,f)
# # 正常是不能把一个字典写入文件的,但是使用这个方法,可以把字典序列化然后存入字典,
# f = open("fff","r")
# ret = json.load(f)
# # 这是往文件外边取
# f.close()
# print(ret)

# 使用这个dump和load,必须是一次性的写进去,然后一次性的读出来,
# 如果你写入两次,然后读取两次,会报错的,

 ####

 

 

 


####

标签:模块,ret,json,3python,字符串,序列化,字典
来源: https://www.cnblogs.com/andy0816/p/15253608.html