python中用于序列化的两个模块

  • json 用于【字符串】和【python基本数据类型】之间进行转换
  • pickle 用于【python特有的类型】 和 【python基本数据类型】间进行转换

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

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

json更加适合跨语言,字符串,基本数据类型
pickle ,python 复杂类型的序列化,仅适用于python

一、json 模块

json提供了四个功能:dumps 、dump、loads 、load

1.将python基本数据类型转换成字符串类型

import json
dic = {'k1':'v1'} #将python基本数据类型转换成字符串形式
result = json.dumps(dic)
print(result,type(result))
输出结果:
{"k1": "v1"} <class 'str'>

2.将python字符串形式转换成基本数据类型

s1 = '{"k1":123}'
#将python字符串形式转换成基本数据类型
dic = json.loads(s1)
print(dic,type(dic))
输出结果:
{'k1': 123} <class 'dict'>

3.将数据通过特殊的形式转换为所有程序语言都认识的字符串,并写入文件

import json
li = [11,22,33]
json.dump(li,open('db1','w'))
把列表li 转换为字符串并写入到文件
结果:就是把[11, 22, 33] 写入到db1文件中

4.将文件中的字符串转换为python的基本数据类型

import json
li2 = json.load(open('db1','r'))
print(li,type(li))
输出结果:
[11, 22, 33] <class 'list'>

5.序列化的使用:

import requests
import json
response = requests.get('http://wthrcdn.etouch.cn/weather_mini?city=北京')
response.encoding = 'utf-8' dic = json.loads(response.text)
print(type(dic))
print(dic)

二、pickle模块

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

1.pickle.dumps 将python基本数据类型转换成字符串类型

import pickle
li = [11,22,33]
r = pickle.dumps(li)
print(r)
结果:
b'\x80\x03]q\x00(K\x0bK\x16K!e.'

2.pickle.loads 将python字符串形式转换成基本数据类型

import pickle
li = [11,22,33]
r = pickle.dumps(li)
#print(r)
result = pickle.loads(r)
print(result)
结果:
[11, 22, 33]

3.pickle.dump 将数据通过特殊的形式转换为所有程序语言都认识的字符串,并写入文件

import pickle
li = [11,22,33]
pickle.dump(li,open('db2','wb'))

4.pickle.load 将文件中的字符串转换为python的基本数据类型

import pickle
li = [11,22,33]
pickle.dump(li,open('db2','wb'))
result = pickle.load(open('db2','rb'))
print(result)
结果:
[11, 22, 33]

python -序列化的更多相关文章

  1. python 序列化之JSON和pickle详解

    JSON模块 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类 ...

  2. Python序列化和反序列化

    Python序列化和反序列化 通过将对象序列化可以将其存储在变量或者文件中,可以保存当时对象的状态,实现其生命周期的延长.并且需要时可以再次将这个对象读取出来.Python中有几个常用模块可实现这一功 ...

  3. python序列化pickle/cPickle

    一.pickle/Cpickle简介 Python序列化的概念很简单.内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给其他人.你会怎么做?这取决于你想要怎么保存,怎么重用,发送给谁.很多游 ...

  4. python序列化与反序列

    python序列化与反序列 在python中提供了两个模块可进行序列化.分别是pickle和json.他们两者的功能都差不多,dumps和dump都是进行序列化,而loads和load则是反序列化. ...

  5. Python 序列化pickle/cPickle模块整理

    Python序列化的概念很简单.内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给其他人.你会怎么做?这取决于你想要怎么保存,怎么重用,发送给谁.很多游戏允许你在退出的时候保存进度,然后你再 ...

  6. 学习笔记:Python序列化常用工具及性能对比

    什么叫序列化?简单来讲就是将内存中的变量数据转而存储到磁盘上或是通过网络传输到远程. 反序列化是指:把变量数据从序列化的对象重新读到内存里. 下面我们一起来看看,python里面序列化常用的json. ...

  7. Python 序列化 pickle/cPickle模块

    Python 序列化 pickle/cPickle模块 2013-10-17 Posted by yeho Python序列化的概念很简单.内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给 ...

  8. Python 序列化与反序列化

    序列化是为了将内存中的字典.列表.集合以及各种对象,保存到一个文件中(字节流).而反序列化是将字节流转化回原始的对象的一个过程. json库 序列化:json.dumps() 反序列化:json.lo ...

  9. python 序列化 json pickle

    python的pickle模块实现了基本的数据序列和反序列化.通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储:通过pickle模块的反序列化操作,我们能够从文件 ...

  10. Python序列化之json与pickle

    1.json介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Progra ...

随机推荐

  1. C语言中static关键字的作用

    static的作用(精辟分析) 在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条. (1)先来介绍它的第一条也是最重要的一条:隐藏. 当我们同时编译多个文件时,所有未加sta ...

  2. WebDAV被启用(转)

    WebDAV (Web-based Distributed Authoring and Versioning) 一种基于 HTTP 1.1协议的通信协议.它扩展了HTTP 1.1,在GET.POST. ...

  3. MVC学习四

    第七节   讲述了增加model中类的属性,由于数据库中已存在表,表中没有存在新加的列,所以可以删除数据库或者在数据库中新增一列,另可以在controller中新增一个数据库初始化的类,并在Globa ...

  4. RouteHttpMap要添加的引用

    System.Web.Routing.RouteCollection' does not contain a definition for 'MapHttpRoute' 此错的解决方式是添加 Syst ...

  5. 我的django之旅(二)模板和静态文件

    我的django之旅(二)模板和静态文件 标签(空格分隔): django 1.为什么要使用模板 在上一篇博文中,提到了HttpReponse,但是HttpReponse只能传送字符串,如果要构建一个 ...

  6. wind7下搭建ftp服务器

    一.首先在本地机器上创建一个用户!这些用户是用来登录到FTP的!我的电脑右键->控制面板->管理工具->计算机管理->本地用户和组->用户->“右键”新建用户-&g ...

  7. C语言一维指针的深入理解

    指针是C语言中广泛使用的一种数据类型.运用指针编程是C语言最主要的风格之一. 利用指针变量可以表示各种数据结构:能很方便地使用数组和字符串:并能象汇编语言一样处理内存地址,从而编出精练而高效的程序.指 ...

  8. 微软企业库的Cache

    微软企业库的Cache 通常,应用程序可以将那些频繁访问的数据,以及那些需要大量处理时间来创建的数据存储在内存中,从而提高性能.基于微软的企业库,我们的快速创建一个缓存的实现. 新建PrismSamp ...

  9. Excel——使用VLOOKUP函数关联跨工作薄数据

    实验环境 有两个工作簿,一个是<花名册>,另一个是<入离职表>,<花名册>上有所有员工的详细信息,包括员工的姓名.部门.出生日期等,<入离职表>上有离职 ...

  10. block(三)揭开神秘面纱(上)

    block到底是什么 我们使用clang的rewrite-objc命令来获取转码后的代码. 1.block的底层实现 我们来看看最简单的一个block: [caption id="attac ...