python -序列化
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 -序列化的更多相关文章
- python 序列化之JSON和pickle详解
JSON模块 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类 ...
- Python序列化和反序列化
Python序列化和反序列化 通过将对象序列化可以将其存储在变量或者文件中,可以保存当时对象的状态,实现其生命周期的延长.并且需要时可以再次将这个对象读取出来.Python中有几个常用模块可实现这一功 ...
- python序列化pickle/cPickle
一.pickle/Cpickle简介 Python序列化的概念很简单.内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给其他人.你会怎么做?这取决于你想要怎么保存,怎么重用,发送给谁.很多游 ...
- python序列化与反序列
python序列化与反序列 在python中提供了两个模块可进行序列化.分别是pickle和json.他们两者的功能都差不多,dumps和dump都是进行序列化,而loads和load则是反序列化. ...
- Python 序列化pickle/cPickle模块整理
Python序列化的概念很简单.内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给其他人.你会怎么做?这取决于你想要怎么保存,怎么重用,发送给谁.很多游戏允许你在退出的时候保存进度,然后你再 ...
- 学习笔记:Python序列化常用工具及性能对比
什么叫序列化?简单来讲就是将内存中的变量数据转而存储到磁盘上或是通过网络传输到远程. 反序列化是指:把变量数据从序列化的对象重新读到内存里. 下面我们一起来看看,python里面序列化常用的json. ...
- Python 序列化 pickle/cPickle模块
Python 序列化 pickle/cPickle模块 2013-10-17 Posted by yeho Python序列化的概念很简单.内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给 ...
- Python 序列化与反序列化
序列化是为了将内存中的字典.列表.集合以及各种对象,保存到一个文件中(字节流).而反序列化是将字节流转化回原始的对象的一个过程. json库 序列化:json.dumps() 反序列化:json.lo ...
- python 序列化 json pickle
python的pickle模块实现了基本的数据序列和反序列化.通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储:通过pickle模块的反序列化操作,我们能够从文件 ...
- Python序列化之json与pickle
1.json介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Progra ...
随机推荐
- JS高级程序设计学习笔记之基本包装类型
概述 基本类型:string.boolean.number 每当读取一个基本类型的值的时候,后台就会创建一个对应的基本包装类型的对象,从而让我们能够调用一些方法来操作这些数据. 使用new操作符创建的 ...
- css-选择器-优先级
<!DOCTYPE html>CSS选择器优先级相同优先级下,位置在文档后面的覆盖前面的不同优先级下,越能具体描述元素的css选择器,优先级越高 具体情况:HTML元素继承父级元素的CSS ...
- 一致性哈希与java实现
一致性哈希算法是分布式系统中常用的算法.比如,一个分布式的存储系统,要将数据存储到具体的节点上,如果采用普通的hash方法,将数据映射到具体的节点上,如key%N,key是数据的key,N是机器节点数 ...
- C#中子窗体获取父窗体中控件的内容
今天在做一个联系人管理的C#设计时,遇到了这个问题,我需要将父窗体中的textBox中的值传到子窗体并进行数据库查询操作,我用了new 父窗体().textBox.text;来进行值传递,然而并无卵用 ...
- TelerikUI_RadGrid_Filter 自定义方法
要设置 EnableLinqExpressions="false",搞了3,4个小时没反应,就是没有设置这个 Protected Sub btnSearch_Click(sende ...
- Apache URL转发
httpd.conf 尾巴加 Alias /web "F:\xampp\htdocs\test/" <Directory "F:\xampp\htdocs\test ...
- poj2709 贪心基础
D - 贪心 基础 Crawling in process... Crawling failed Time Limit:1000MS Memory Limit:65536KB 64bi ...
- hdu 5363Key Set
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5363 Problem Description soda has a set S with n inte ...
- Android-2
传递简单数据 //发送方i.putExtra("data",t.getText().toString()); //接收方Intent i = getIntent();m = (Ed ...
- NSThread 、NSRunLoop 和 Dispatch Queue
iOS多线程编程中,NSOperation和NSOperationQueue无疑是最常用的,它们能满足绝大部分情况下的线程操作.但在完成一些特殊的任务时,我们还是要使用的NSThread和NSRun ...