一.JSON &pickle

用于序列化的两个模块

  • json,用于字符串 和 python数据类型间进行转换  字符串必须是双引号,不能是单引号
  • pickle,用于python特有的类型 和 python的数据类型间进行转换

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

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

dumps,loads处理字符串

dump,dump写入文件

pickle处理特有的,比如函数;json和pickle读文件只能处理只有一行的文件数据,所以基本用json和pickle读写只处理一次。要处理多次使用shelve模块

  1. # -*- coding:utf-8 -*-
  2. __author__ = 'shisanjun'
  3.  
  4. import json
  5. import pickle
  6.  
  7. data={"name":"shisanjun","age":23} # 字典
  8. data_json=json.dumps(data)#转成字符串
  9.  
  10. print(data_json)
  11. print(type(data_json))
  12.  
  13. data1=json.loads(data_json) #转成字典
  14. print(data1)
  15.  
  16. print(type(data1))
  17.  
  18. with open("json.txt",'w',encoding="utf-8") as f:
  19. json.dump(data,f)
  20. json.dump(data1,f)
  21.  
  22. # with open("json.txt",'r',encoding="utf-8") as f:
  23. # print(json.load(f)) #报错 Extra data: line 1 column,load只能读文件一行,而现在文件中有两行
  24.  
  25. def func():
  26. print("test func")
  27.  
  28. data2={"name":"shisanjun","age":23,"func":func}
  29. # with open("json1.txt",'w',encoding="utf-8") as f:
  30. # json.dump(data2,f) #报错TypeError: Object of type 'function' is not JSON serializable,json只能处理简单类型
  31. print(type(data2))
  32. with open("json2.txt",'wb') as f: #必须byte方式写
  33. pickle.dump(data2,f)
  34.  
  35. with open("json2.txt",'rb') as f1:
  36.  
  37. pickle.load(f1)["func"]()

二.shelve模块

shelve模块是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式

  1. # -*- coding:utf-8 -*-
  2. __author__ = 'shisanjun'
  3.  
  4. import shelve
  5.  
  6. d=shelve.open('shelve.txt')#打开文件
  7.  
  8. def test1():
  9. print("shelve deal function")
  10.  
  11. name=["alex","rain","test"]
  12. d["test"]=name#持久化列表
  13. d["t1"]=test1 ##持久化类
  14. d.close()

python基础--json,pickle和shelve模块的更多相关文章

  1. python pickle 和 shelve模块

    pickle和shelve模块都可以把python对象存储到文件中,下面来看看它们的用法吧 1.pickle 写: 以写方式打开一个文件描述符,调用pickle.dump把对象写进去 dn = {'b ...

  2. python 基础之pickle 与json 报错问题解决方案

    Python 基础之pickle与json 有没有在搞pickle与json在进行数据储存的时候老是报错,这个有些让人烦恼,在之前有一篇介绍过它们的基本用法以及在使用过长中避免一些坑,但是今天在把对象 ...

  3. Python基础(12)_python模块之sys模块、logging模块、序列化json模块、pickle模块、shelve模块

    5.sys模块 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 ...

  4. python json、 pickle 、shelve 模块

    json 模块 用于序列化的模块 json,用于字符串 和 python数据类型间进行转换 Json模块提供了四个功能:dumps.dump.loads.load #!/usr/bin/env pyt ...

  5. 【python】-- json & pickle、xml、requests、hashlib、shelve、shutil、configparser、subprocess

    json & pickle Python中用于序列化的两个模块 json     用于[字符串]和 [python基本数据类型] 间进行转换 pickle   用于[python特有的类型] ...

  6. os常用模块,json,pickle,shelve模块,正则表达式(实现运算符分离),logging模块,配置模块,路径叠加,哈希算法

    一.os常用模块 显示当前工作目录 print(os.getcwd()) 返回上一层目录 os.chdir("..") 创建文件包 os.makedirs('python2/bin ...

  7. python的pickle和shelve模块

    python中用于序列化的模块总结 目录 pickle模块 shelve模块 xml模块 pickle模块 介绍 Pickle的问题和所有其他编程语言特有的序列化问题一样,就是它只能用于Python, ...

  8. Python(序列化json,pickle,shelve)

    序列化 参考:https://www.cnblogs.com/yuanchenqi/articles/5732581.html # dic = str({'1':'111'}) # # f = ope ...

  9. (十四)json、pickle与shelve模块

    任何语言,都有自己的数据类型,那么不同的语言怎么找到一个通用的标准? 比如,后端用Python写的,前端是js,那么后端如果传一个dic字典给前端,前端肯定不认. 所以就有了序列化这个概念. 什么是序 ...

随机推荐

  1. Satisfiability of Equality Equations - LeetCode

    目录 题目链接 注意点 解法 小结 题目链接 Satisfiability of Equality Equations - LeetCode 注意点 必须要初始化pre 解法 解法一:典型的并查集算法 ...

  2. Linux系统启动详解(三)

    上节已系统initramfs已启动完成,将系统控制权交给了真正的rootfs的/sbin/init,下面就是/sbin/init干活的时间了. 4       /sbin/init initramfs ...

  3. keepalived回顾

    Keepalived是lvs的扩展项目,因此它们之间具备良好的兼容性. 通过对服务器池对象的健康检查,实现对失效机器/服务的故障隔离: 负载均衡器之间的失败切换failover,通过VRRPv2 st ...

  4. Java考试题之五

    QUESTION 102 Given: 23. Object [] myObjects = { 24. new Integer(12), 25. new String("foo") ...

  5. EMF的安装及用例

    转: EMF的安装及用例 本人正在开发专门针对计算机视觉领域的DSL(这是一个和某公司合作的项目),欢迎各位朋友一起交流学习! 一.简介 EMF是一个建模框架和代码生成工具,用于构建基于结构化数据模型 ...

  6. BP神经网络人口预测程序(matlab实现)

    自己测试人口预测的matlab实现: x=[54167    55196    56300    57482    58796    60266    61465    62828    64653  ...

  7. 加ico

    <link rel="icon" type="text/css" href="/favicon.png" />

  8. iis配置访问错误

    最近换工作,忙着熟悉新的环境,新的框架技术(银行用的EBF),各种碰坑. 总结一下iis配置过程当中遇到的一个坑------ 按照环境搭配手册一步一步的配置,在我机器上访问一直报500的错,但是同样的 ...

  9. HTTP协议(3):HTTP1.1与HTTP1.0的区别

    翻了下HTTP1.1的协议标准RFC2616,下面是看到的一些它跟HTTP1.0的差别. 1. Persistent Connection持久连接 在HTTP1.0中,每对Request/Respon ...

  10. Linux下的Jenkins+Tomcat+Maven+Git+Shell环境的搭建使用(jenkins自动化部署)

    jenkins自动化部署 目标:jenkins上点构建(也可以自动检查代码变化自动构建)>>>项目部署完成. 一.安装jenkins 1.下载jenkins 这里我选择的是war包安 ...