什么是序列化,Python中json的load,loads,dump,dumps和pickle的load,loads,dump,dumps的区别

我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化

json就是一种序列化的传输手段(json序列化的是字典类型的数据类型

Python把一个字典序列化到一个文本文件中,使用json.dump或者dumps,如下:

import json
dic={‘name‘:‘ljj‘,‘age‘:18}
data=json.dumps(dic)
f=open(‘json_text‘,‘w‘)
f.write(data)
f.close()

或者如下:

import json
dic={‘name‘:‘ljj‘,‘age‘:18}

f=open(‘json_text2‘,‘w‘)
# data=json.dumps(dic)
# f.write(data)
json.dump(dic,f)
f.close()

dump与dumps的区别就是dumps需要自己将序列化的字典write到文件中,而dump内部已经帮我们做了这一步

从文本文件中读取,使用json.load或者loads,则如下:

import json
f = open(‘json_text‘,‘r‘)
data=f.read()
data=json.loads(data)
print(data[‘name‘])

或者如下:

import json
f = open(‘json_text2‘,‘r‘)
# data=f.read()
data=json.load(f)
print(data[‘name‘])

load与loads的区别就是loads需要自己将文件中的信息反序列化到内存中再read,而load内部已经帮我们做了这一步

pickle就是一种序列化的传输手段(pickle序列化的是函数和类

序列化到文件中

import pickle

def foo():
    print(‘ok‘)

data = pickle.dumps(foo)
f = open(‘PICKLE_text‘,‘wb‘)
f.write(data)
f.close()

反序列化到内存里

import pickle

def foo():
    print(‘ok‘)
f = open(‘PICKLE_text‘,‘rb‘)

data = f.read()
data=pickle.loads(data)

data()#需要上面添加foo()函数才不会报错,因为反序列化之后,foo的引用地址会找不到foo函数,需要重新加载

原文地址:https://www.cnblogs.com/softtester/p/11612498.html

时间: 2024-10-10 09:41:06

什么是序列化,Python中json的load,loads,dump,dumps和pickle的load,loads,dump,dumps的区别的相关文章

python中json.dumps使用的坑以及字符编码

我们知道,python中的字符串分普通字符串和unicode字符串,一般从数据库中读取的字符串会自动被转换为unicode字符串 下面回到重点,使用json.dumps时,一般的用法为: >>> obj={"name":"测试"} >>> json.dumps(obj)'{"name": "\\u6d4b\\u8bd5"}' >>> print json.dumps(obj

python 中json has no attribute 'loads'

在python爬虫时出现了json has no attribute 'loads'问题. 1 可能是没有安装json包,cmd-pip install json, 显示已安装. 2 当前盘中存在json.py文件,导致错误. 因为我的python文件是保存在F盘中的,而F盘中有名为json.py的文件,所以运行程序时首先在F盘中寻找json文件,名称有json的被认为json包,而其中没有loads模块. 3 解决办法:把F盘中的json.py改名为json1.py重新运行程序,问题解决. p

python中json.load()、json.loads()、json.dump()、json.dumps()的区别

json.load()从文件中读取json字符串 json.loads()将json字符串转换为字典类型 json.dumps()将python中的字典类型转换为字符串类型 json.dump()将json格式字符串写到文件中 1.json.load() with open('text.json','r',encoding='utf-8') as f : print(json.load(f)) { "name": "anthony", "sex"

python中json与dict之间转换

Python之dict(或对象)与json之间的互相转化 在Python语言中,json数据与dict字典以及对象之间的转化,是必不可少的操作. 在Python中自带json库.通过import json导入. 在json模块有2个方法, loads():将json数据转化成dict数据 dumps():将dict数据转化成json数据 load():读取json文件数据,转成dict数据 dump():将dict数据转化成json数据后写入json文件 下面是具体的示例: dict字典转jso

[ Python入门教程 ] Python中JSON模块基本使用方法

JSON (JavaScript Object Notation)是一种使用广泛的轻量数据格式,Python标准库中的json模块提供了一种简单的方法来编码和解码JSON格式的数据.用于完成字符串和python数据类型间进行转换. json模块基本函数   json.dumps():把Python数据类型转换成JSON字符串   json.loads():把JSON字符串转换成Python数据类型   json.dump():把Python数据类型转换成JSON字符串并存储在文件中   json

Python中json的应用(转)

python中的 json 模块使用 注:测试环境 OS:Ubuntu 16.04 LTS Python:Python 2.7.11+ (1)python 中生成 json 字符串: import json data = dict(ret=0, msg="Welcome, Login success!") json_str = json.dumps(data, sort_keys=True) print json_str (2)python 中解析 json字符串: import js

python中json模块dumps和loads的区分

b=urllib2.urlopen("http://www.baidu.com")a=b.read()#这里读取的是html中的json格式的内容a1=json.loads(a)#把读取到的内容从json转换成Python中的字典格式print a1['消息状态']#用Python中的字典取值方法 a2=json.dumps(a1)#此时a1已经相当于Python中的字典了,不能称之为json了,此法可以把Python中的字典再次转成json

python中json的操作示例

先上一段示例 # -*- coding: cp936 -*- import json #构造一个示例数据,并打印成易读样式 j = {} j["userName"]="admin" j["realName"]="管理员" j["cookie"]="afasfasfasdfasdfasf" print json.dumps(j, ensure_ascii=False, indent=4)

Python 中json与字典的关系

Python开发中字典和 json的概念区别: 一.字典 字典是一种数据结构,而json是一种数据格式,格式就会有一些形式上的限制,比如json的格式要求必须且只能使用双引号作为key或者值的边界符号(值如果是数字可以不用加双引号),不能使用单引号,用单引号或者不用引号会导致读取数据错误,而且“key”必须使用边界符(双引号),但字典就无所谓了,可以使用单引号,也可以使用双引号. dict是一个完整的数据结构,是对Hash Table这一数据结构的一种实现,是一套从存储到提取都封装好了的方案.它

python操作json来存储简单的数据,pickle来操作复杂的数据

json作为不同语言间进行数据交互的媒介,在当下已经渐渐取代了之前的xml,看一波python操作json 1 # coding = ascii 2 3 import json 4 import pickle 5 import sys 6 import os 7 ''' 8 练习json,pickle 9 json类型的数据可以实现不同语言间的数据交互, 10 python3中引入python是为了实现将字典,列表等格式的数据 11 打包成字符串形式,即将其序列化,使用eg.json.dump(