python 序列化 json pickle

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

  基本接口:

  pickle.dump(obj, file, [,protocol])
  注解:将对象obj保存到文件file中去。
     protocol为序列化使用的协议版本,0:ASCII协议,所序列化的对象使用可打印的ASCII码表示;1:老式的二进制协议;2:2.3版本引入的新二进制协议,较以前的更高效。其中协议0和1兼容老版本的python。protocol默认值为0。
     file:对象保存到的类文件对象。file必须有write()接口, file可以是一个以‘w‘方式打开的文件或者一个StringIO对象或者其他任何实现write()接口的对象。如果protocol>=1,文件对象需要是二进制模式打开的。

  pickle.load(file)
  注解:从file中读取一个字符串,并将它重构为原来的python对象。
  file:类文件对象,有read()和readline()接口。

  A Simple Code

#使用pickle模块将数据对象保存到文件

import pickle

data1 = {‘a‘: [1, 2.0, 3, 4+6j],         ‘b‘: (‘string‘, u‘Unicode string‘),         ‘c‘: None}

selfref_list = [1, 2, 3]selfref_list.append(selfref_list)

output = open(‘data.pkl‘, ‘wb‘)

# Pickle dictionary using protocol 0.pickle.dump(data1, output)

# Pickle the list using the highest protocol available.pickle.dump(selfref_list, output, -1)

output.close()

#使用pickle模块从文件中重构python对象

import pprint, pickle

pkl_file = open(‘data.pkl‘, ‘rb‘)

data1 = pickle.load(pkl_file)pprint.pprint(data1)

data2 = pickle.load(pkl_file)pprint.pprint(data2)

pkl_file.close()

Python的json模块提供了一种很简单的方式来编码和解码JSON数据。 其中两个主要的函数是 json.dumps() 和 json.loads() , 要比其他序列化函数库如pickle的接口少得多。 下面演示如何将一个Python数据结构转换为JSON:


1

2

3

4

5

6

7

8

9

import json

data = {

‘name‘ : ‘ACME‘,

‘shares‘ : 100,

‘price‘ : 542.23

}

json_str = json.dumps(data)

下面演示如何将一个JSON编码的字符串转换回一个Python数据结构:


1

data = json.loads(json_str)

如果你要处理的是文件而不是字符串,你可以使用 json.dump() 和 json.load() 来编码和解码JSON数据。例如:


1

2

3

4

5

6

7

# Writing JSON data

with open(‘data.json‘, ‘w‘) as f:

 json.dump(data, f)

# Reading data back

with open(‘data.json‘, ‘r‘) as f:

 data = json.load(f)

时间: 2024-10-13 02:31:50

python 序列化 json pickle的相关文章

Python 序列化Json、Pickle

#!/usr/bin/env python # -*- coding:utf-8 -*- # author: Changhua Gong ''' Json仅支持简单的数据类型,不支持复杂类型的序列化,如函数 ''' import json info = {"name":"daidai", "salary":15000} # 序列化 with open("test.txt", "w") as f: # f.w

python数据序列化---json & pickle

json & pickle数据序列化 序列化: 就是列表,字典等数据类型转乘字符串存入文本文件 反序列: 就是字符串从文本读出来后通过一种方法转化为列表,字典等数据类型.例如eval() json通用的:只能处理一些简单的数据类型:json: 序列化和反序列化函数: 案例1:  import json  info = {   "name": "brace",   "age": 22,  }  json_str = json.dumps(i

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

json & pickle Python中用于序列化的两个模块 json     用于[字符串]和 [python基本数据类型] 间进行转换 pickle   用于[python特有的类型] 和 [python基本数据类型]间进行转换 Json模块提供了四个功能:dumps.dump.loads.load 1.dumps序列化和loads反序列化 dumps()序列化 import json #导入json模块 info = { 'name':"zhangqigao", &qu

学习廖雪峰Python3教程的python序列化json模块的小笔记

我们把变量从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flattening等等,都是一个意思. 序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上. 序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上. Python提供了pickle模块来实现序列化. import pickle d = {"name":"Alice&quo

Day 4-5 序列化 json & pickle

序列化: 序列化是指把内存里的数据类型转变成字符串,以使其能存储到硬盘或通过网络传输到远程,因为硬盘或网络传输时只能接受bytes. 反序列化: 把字符转成内存里的数据类型. 用于序列化的两个模块.他们的使用方法完全一样. json,用于字符串 和 python数据类型间进行转换 pickle,用于python特有的类型 和 python的数据类型间进行转换 Json模块提供了四个功能:dumps.dump.loads.load pickle模块提供了四个功能:dumps.dump.loads.

python之json&pickle

用于序列化的两个模块: json:用于字符串和python数类型间进行转换 oickle:用于python特有的类型和python的数据类型间进行转换 json.pickle模块提供四个功能:dumps.dump.loads.load 使用json&pickle将转化成字符串写入文件 1 import json 2 import pickle 3 4 def sayhi(name): 5 print("hello,", name) 6 7 info = { 8 "na

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

这是用于序列化的两个模块: ? json: 用于字符串和python数据类型间进行转换 ? pickle: 用于python特有的类型和python的数据类型间进行转换 Json模块提供了四个功能:dumps.dump.loads.load pickle模块提供了四个功能:dumps.dump.loads.load 那pickle和json有什么区别呢? json是可以在不同语言之间交换数据的,而pickle只在python之间使用. json只能序列化最基本的数据类型,而pickle可以序列化

python序列化之pickle,json,shelve

模块 支持方法 说明 json dumps/dump loads/load 只能处理基本数据类型: 用于多种语言间的数据传输: pickle dumps/dump loads/load 支持python所有数据类型: 用于python程序间互相传输对象: pickle反序列化后的对象与原对象是等值的副本对象,类似于deepcopy shelve open close 以键值对的形式保存数据,可直接操作文件 原文地址:https://www.cnblogs.com/stin/p/8350749.h

4 Apr 18 软件开发目录 logging模块的使用 序列化(Json, Pickle) os模块

4 Apr 18 上节课复习:函数在一个程序内被使用,模块可以被几个程序共享使用 一.软件开发目录 confàsettings.py core(主要逻辑)àsrc.py dbàdb.txt lib(库)àcommon.py bin(入口,启动)àstart.py logàaccess.log readme(说明书)   二.logging模块的使用 日志分为五个级别:debug 10, info 20, warning 30, error 40, critical 50 若日志级别设为10,包括