#json 模式

1、dumps、loads  方法 针对内存

  1. dic = {'k1':'v1'}
  2. #转换成json
  3. import json
  4. str_d = json.dumps(dic) #序列化
  5. dic_d = json.loads(str_d)#反序列化
  6. #可序列化的类型 数字 字符串 列表 字典

2、dump 、load 方法  针对文件

  1. dic = {1'a',2:'b'}
  2. f = open('fff','w',encoding = 'utf-8')
  3. json.dump(dic,fensure_ascii=False) #序列化 按照正常的编码格式,显示中文
  4. f.close()
  5. f = open('fff','w',encoding = 'utf-8')
  6. ret = json.load() #反序列化
  7. print(type(res),res)
  8. f.close()

#pickle模式

  1. #可以分布的 dump load 操作文件需要使用 'wb' 模式
  2. import pickle
  3. dic = {'k1':'v1','k2':'v2','k3':'v3'}
  4. str_dic = pickle.dumps(dic)
  5. print(str_dic) #一串二进制内容
  6.  
  7. dic2 = pickle.loads(str_dic)
  8. print(dic2) #字典
  9.  
  10. import time
  11. struct_time1 = time.localtime(1000000000)
  12. struct_time2 = time.localtime(2000000000)
  13. f = open('pickle_file','wb')
  14. pickle.dump(struct_time1,f)
  15. pickle.dump(struct_time2,f)
  16. f.close()
  17. f = open('pickle_file','rb')
  18. struct_time1 = pickle.load(f)
  19. struct_time2 = pickle.load(f)
  20. print(struct_time1.tm_year)
  21. print(struct_time2.tm_year)
  22. f.close()

#shelve

open方法

  1. import shelve
  2. f = shelve.open('shelve_file')
  3. f['key'] = {'int':10, 'float':9.5, 'string':'Sample data'} #直接对文件句柄操作,就可以存入数据
  4. f.close()
  5. import shelve
  6. f1 = shelve.open('shelve_file')
  7. existing = f1['key'] #取出数据的时候也只需要直接用key获取即可,但是如果key不存在会报错
  8. f1.close()
  9. print(existing)
  10.  
  11. import shelve
  12. f = shelve.open('shelve_file', flag='r')
  13. existing = f['key']
  14. print(existing)
  15.  
  16. f.close()
  17.  
  18. f = shelve.open('shelve_file', flag='r')
  19. existing2 = f['key']
  20. f.close()
  21. print(existing2)
  22.  
  23. import shelve
  24. f1 = shelve.open('shelve_file')
  25. print(f1['key'])
  26. f1['key']['new_value'] = 'this was not here before'
  27. f1.close()
  28.  
  29. f2 = shelve.open('shelve_file', writeback=True)
  30. print(f2['key'])
  31. f2['key']['new_value'] = 'this was not here before'
  32. f2.close()

Python——序列化模块的更多相关文章

  1. python序列化模块 json&&pickle&&shelve

    #序列化模块 #what #什么叫序列化--将原本的字典.列表等内容转换成一个字符串的过程叫做序列化. #why #序列化的目的 ##1.以某种存储形式使自定义对象持久化 ##2.将对象从一个地方传递 ...

  2. python序列化模块json和pickle

    序列化相关 1. json 应用场景: json模块主要用于处理json格式的数据,可以将json格式的数据转化为python的字典,便于python处理,同时也可以将python的字典或列表等对象转 ...

  3. python 序列化模块之 json 和 pickle

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,支持不同程序之间的数据转换.但是只能转换简单的类型如:(列表.字典.字符串. ...

  4. python序列化模块

    什么叫序列化——将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化. 序列化的目的 1.以某种存储形式使自定义对象持久化: 2.将对象从一个地方传递到另一个地方. 3.使程序更具维护性.   ...

  5. Python序列化模块pickle和json使用和区别

    这是用于序列化的两个模块: • json: 用于字符串和python数据类型间进行转换 • pickle: 用于python特有的类型和python的数据类型间进行转换 Json模块提供了四个功能:d ...

  6. Python 序列化模块(json,pickle,shelve)

    json模块 JSON (JavaScript Object Notation):是一个轻量级的数据交换格式模块,受javascript对象文本语法启发,但不属于JavaScript的子集. 常用方法 ...

  7. python序列化模块的速度比较

    # -*- coding: utf-8 -*- # @Time : 2019-04-01 17:41 # @Author : cxa # @File : dictest.py # @Software: ...

  8. Python序列化模块-Pickel写入和读取文件

    利用pickle 存储和读取文件 1.存储文件: #引入所需包,将列表元素存入data2的文件里面 import pickle mylist2 ={'1','nihao','之后','我们',1,2, ...

  9. 铁乐学python_day25_序列化模块

    铁乐学python_day25_序列化模块 部份内容摘自博客http://www.cnblogs.com/Eva-J/ 回顾内置方法: __len__ len(obj)的结果依赖于obj.__len_ ...

随机推荐

  1. (二)阿里云ECS Linux服务器外网无法连接MySQL解决方法(报错2003- Can't connect MySQL Server on 'x.x.x.x'(10038))(自己亲身遇到的问题是防火墙的问题已经解决)

    我的服务器买的是阿里云ECS linux系统.为了更好的操作数据库,我希望可以用navicat for mysql管理我的数据库. 当我按照正常的模式去链接mysql的时候, 报错提示: - Can' ...

  2. nth-child(n)和nth-of-type(n)的区别

    1.官方解释: p:nth-child(2)     选择属于其父元素的第二个子元素的每个 <p> 元素. p:nth-of-type(2) 选择属于其父元素第二个 <p> 元 ...

  3. 微信小程序---require()

    我们可以通过require()来获取其它文件导出的数据,但要注意的是传给require的路径只能是相对路径. // 获取指定页面通过module.exports导出的数据 var postsData ...

  4. Dynamics 365 Customer Engagement安装FAQ

    微软动态CRM专家罗勇 ,回复310或者20190308可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 本文参考了包括但不限 ...

  5. Mapbox浅析(快速入门Mapbox)

    1.是什么? Mapbox是一个可以免费创建并定制个性化地图的网站. 2.了解一些基本东西 常见的 mapbox.js和mapbox-gl.js的异同点? 相同点: 1.都是由Mapbox公司推出的免 ...

  6. (办公)mysql连接不上(java.sql.SQLException: null, message from server: "Host 'LAPTOP-O0GA2P8J' is not allowed to connect to this MySQL server")(转)

    转载自csdn文章:https://blog.csdn.net/Tangerine_bisto/article/details/803461511.对所有主机进行访问授权 GRANT ALL PRIV ...

  7. CentOS.7下安装配置FTP和SFTP服务

    一: FTP Centos7中默认已经安装了sshd服务(sftp), vsftpd需要手动安装 1.安装并启动FTP服务 1.1 安装vsftpd 使用 yum 安装 vsftpd yum inst ...

  8. AES 加密与解密

    using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Securit ...

  9. Flex builder4.6激活【转】

    方法一: 1.到Adobe官网下载FlashBuilder 4.6 http://download.adobe.com/pub/adobe/flex/win/FlashBuilder_4_6_LS10 ...

  10. LeetCode算法题-Trim a Binary Search Tree(Java实现)

    这是悦乐书的第284次更新,第301篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第152题(顺位题号是669).给定二叉搜索树以及L和R的最低和最高边界,修剪树以使其所 ...