首页 > 编程语言 >Python json和pickle模块

Python json和pickle模块

时间:2023-06-24 17:56:05浏览次数:41  
标签:Python ret 元组 json 列表 pickle 字典

json和pickle模块

  • 用于序列化的两个模块

序列化模块:json 和 pickle

json,用于字符串 和 python数据类型间进行转换
pickle,用于python特有的类型 和 python的数据类型间进行转换

Json模块提供了四个功能:dumps、dump、loads、load
pickle模块提供了四个功能:dumps、dump、loads、load

json 模块

  • loads
import json
 
s = '{"key1":"value1","key2":"value2"}'     # ==> 用json模块将字符串转化成其他数据类型,字符串里出现引号必须用双引号
ret = json.loads(s)                         # ==> loads 由字符串转其他数据类型
print(ret,type(ret))
 
l = '[11,22,3,56,75]'
result =json.loads(l)
print(result,type(result))
 
# 输入结果:
{'key1': 'value1', 'key2': 'value2'} <class 'dict'>
[11, 22, 3, 56, 75] <class 'list'> 
  • load
import json
 
ret = json.load(open('ethan.txt','r'))  # ==> 将文档(内部是字符串格式)转换成python的其他数据类型
print(ret,type(ret))                    # ==> 文档里是字典样式的字符串
 
# 输入结果:
{'key1': 'value1', 'key2': 'value2'} <class 'dict'>
  • 总结
# json.loads() 用于将形似字典、列表、元组的字符串,转换成字典、列表、元组
# json.load() 用于将文档(内容是形似字典、列表、元组的字符串)转换成字典、列表、元组  
  • dumpsdump
import json
 
di = {"key1":"value1","key2":"value2"}
ret = json.dumps(di)                    # ==> 将字典、列表、元组 转换成字符串格式
print(ret,type(ret))
 
# 输入结果:
{"key1": "value1", "key2": "value2"} <class 'str'>
 
json.dump(di,open('test2.txt','a+'))    # ==> 将字典、元组、列表转换成字符串格式并写入文档
 
# 输入结果: test2文件内容
{"key1": "value1", "key2": "value2"}
  • 总结
# json.dumps()  用于将字典、列表、元组,转换成字符串
# json.dump()   用于将字典、列表、元组,存入文档中并转换成字符串  

pickle 模块

import pickle
 
d = {'name': 'ethan', 'age': 28}
ret = pickle.dumps(d)                       # ==> pickle将字典、元组、列表转换成二进制
print(ret, type(ret))
 
l = [11, 22, 3, 45, 54]
res = pickle.dumps(l)
print(res)
 
pickle.dump(d, open('test2.txt', 'ab'))     # ==> 将字典、元组、列表转换成二进制写入文档
 
# 注意 dump load 不要一起运行,会报错,一步一步来
 
f = open('test2.txt', 'rb')
r = pickle.loads(f.read())                  # ==> 将二进制转换成字典、列表、元组
# r = pickle.load(f)
print(r)
 
# 输入结果:
b'\x80\x03}q\x00(X\x04\x00\x00\x00nameq\x01X\x05\x00\x00\x00ethanq\x02X\x03\x00\x00\x00ageq\x03K\x1cu.' <class 'bytes'>
b'\x80\x03]q\x00(K\x0bK\x16K\x03K-K6e.'
{'name': 'ethan', 'age': 28}

总结

# pickle.dumps()  用于将字典、列表、元组,转换成二进制
# pickle.dump()   用于将字典、列表、元组,存入文档中并转换成二进制
# pickle.loads()  用于将二进制,转换成字典、列表、元组
# pickle.load()   用于将文档二进制,转换成字典、列表、元组

标签:Python,ret,元组,json,列表,pickle,字典
From: https://www.cnblogs.com/evescn/p/17501414.html

相关文章

  • Python潮流周刊#8:Python 3.13 计划将解释器提速 50%!
    你好,我是猫哥。这里每周分享优质的Python及通用技术内容,部分为英文,已在小标题注明。(标题取自其中一则分享,不代表全部内容都是该主题,特此声明。)首发于我的博客:https://pythoncat.top/posts/2023-06-24-weekly......
  • Python subprocess模块
    Pythonsubprocess模块subprocess模块可以执行shell命令的相关模块和函数有:os.systemos.spawn*os.popen*--废弃popen2.*--废弃commands.*--废弃,3.x中被移除以上执行shell命令的相关的模块和函数的功能均在subprocess模块中实现,并提供......
  • Python shutil模块
    Pythonshutil模块高级的文件、文件夹、压缩包处理模块将文件内容拷贝到另一个文件中,可以部分内容shutil.copyfileobj(fsrc,fdst[,length])例子importshutilf1=open("a.txt",encoding="utf-8")f2=open("b.txt","w",encoding="utf-8")shu......
  • 【python基础】文件-初识文件
    文本文件可存储的数据量是非常多的。每当需要分析或修改存储在文件中的信息时,首先就是读取文件到内存中,为此可以一次性读取文件的全部内容,也可以以每次一行的方式逐步读取。1.读取文件1.1读取整个文件要读取文件,需要一个包含几行文本的文件。下面首先来创建一个poems文本文件,,里......
  • Python os模块
    Pythonos模块os模块用于提供系统级别的操作os.getcwd()#获取当前工作目录,即当前python脚本工作的目录路径os.chdir("dirname")#改变当前脚本工作目录;相当于shell下cdos.curdir#返回当前目录:('.')os.pardir#获取当前目录......
  • Python sys模块
    Pythonsys模块sys模块用于提供对解释器相关的操作sys.argv#命令行参数List,第一个元素是程序本身路径sys.exit(n)#退出程序,正常退出时exit(0)sys.version#获取Python解释程序的版本信息sys.maxint......
  • Python hashlib模块
    Pythonhashlib模块hashlib模块用于加密相关的操作,代替了md5模块和sha模块主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法#md5废弃importmd5hash=md5.new()hash.update('admin')printhash.hexdigest()#sha废弃importshahash=sha.new()ha......
  • Pickle反序列化漏洞学习
    Pickle反序列化漏洞模块pickle实现了对一个Python对象结构的二进制序列化和反序列化。"pickling"是将Python对象及其所拥有的层次结构转化为一个字节流的过程,而"unpickling"是相反的操作,会将(来自一个binaryfile或者bytes-likeobject的)字节流转化回一个对象层次......
  • 在 Python 中,类型属于对象,变量是没有类型的
    在Python中,类型属于对象,变量是没有类型的:━━━━━━━━━━━━━━━━━━━━━━━━━a=[1,2,3]a="w3cschool"以上代码中,[1,2,3]是list类型,"w3cschool"是string类型,而变量a是没有类型,她仅仅是一个对象的引用(一个指针),可以是list类型对象,也可以指向是stri......
  • Python 模块(转载)
    Python常用模块模块分类自定义模块开源模块内置模块自定义模块定义模块情景一情景二情景三导入模块Python之所以应用越来越广泛,在一定程度上也依赖于其为程序员提供了大量的模块以供使用,如果想要使用模块,则需要导入。导入模块有一下几种方法:importmodulefrom......