Python-JSON和pickle
笔记:
一:简介
(1)JSON (JavaScript Object Notation) 是一种轻量级(XML重量级)的数据交换格式。
是为了数据交换而定制的一种规则,它基于ECMAScript的一个子集。 (2)JSON是一种数据格式!
字符串是JSON的表现形式。(符合JSON格式的字符串叫做JSON字符串) (3)Python3中可以使用 json 模块来对 JSON 数据进行编解码,它包含了两个函数:
json.dumps(): 对数据进行编码。
json.loads(): 对数据进行解码。
(4)JSON的优点是:易阅读、易解析、网络传输效率高、跨语言交换数据 二:python 编码为JSON类型转换对应表:
_______________________________________________
| python | JSON |
-------------------------------------------------
| dict | object |
-------------------------------------------------
| list,tuple | array |
-------------------------------------------------
| str | string |
-------------------------------------------------
| int,float,Enums | number |
-------------------------------------------------
| True,False,None | true,false,null |
------------------------------------------------- 三: 如果你要处理的是文件而不是字符串,可以使用
json.dump()
json.load() 四:用pickle对数据序列化和反序列化
(1)方法:
pickle.dump()
pickle.load()
pickle.dumps()
pickle.loads()
(2)数据类型:
所有python支持的原生类型:布尔值,整数,浮点数,复数,字符串,字节,None。
由任何原生类型组成的列表,元组,字典和集合。
函数,类,类的实例 五:JSON和pickle之间的区别
JSON序列化和反序列化的目的是将Python数据类型转换为JSON标准类型,
或者将JSON类型的数据转换为python的数据类型,从而实现不同语言之间的数据交换!
pickle:在程序运行过程中希望保存一个数据,重用或者发送给其他人,可以采用这方式
将数据写入文件,支持所有数据类型!
code:
import json
import pickle
# ----------------------------------------------#
# 反序列化
# ----------------------------------------------#
# object
json_str = '{"name":"qiyue", "age":18}' # JSON字符串
student = json.loads(json_str) # JSON对象转换为字典
print(student)
print(json_str)
print(type(student)) # object
json_str1 = '[{"name":"qiyue", "age":18, "flag":false}, ' \
'{"name":"qiyue", "age":18}]' # JSON字符串
student1 = json.loads(json_str1) # JSON对象转换为字典
print(type(student1), student1)
print(student1[0]) # ----------------------------------------------#
# 序列化
# ----------------------------------------------#
student2 = [
{"name": "qiyue", "age": 18, "flag": False},
{"name": "qiyue", "age": 18}
] json_str1 = json.dumps(student2) # 转换为字符串后可以利用正则表达式处理字符串
print(type(json_str1), json_str1) # ----------------------------------------------#
# 处理的是文件
# ----------------------------------------------#
# 将数据写入文件
student3 = [
{"name": "qiyue", "age": 18, "flag": False},
{"name": "qiyue", "age": 18}
]
with open('data.json', 'w') as f:
json.dump(student3, f) # 读取数据
with open('data.json', 'r') as f:
data = json.load(f) # dumps(object)将对象序列化
list_a = ["English", "Math", "Chinese"]
list_b = pickle.dumps(list_a) # 序列化数据
print(list_a)
print(list_b) # loads(object)将对象原样恢复,并且对象类型也恢复原来的格式
list_c = pickle.loads(list_b)
print(list_c) # dumps(object,file)将对象序列化后存储到文件中
group1 = ("baidu", "wen", "qingtian")
f1 = open('group.txt', 'wb')
pickle.dump(group1, f1, True)
f1.close() # load(object, file)将文件中的信息恢复
f2 = open('group.txt', 'rb')
t = pickle.load(f2)
f2.close()
print(t)
Python-JSON和pickle的更多相关文章
- Python json和pickle模块
用于序列化的两个模块 json,用于字符串 和 python数据类型间进行转换 pickle,用于python特有的类型 和 python的数据类型间进行转换 Json模块提供了四个功能:dumps. ...
- python json、pickle
文章部分转自:https://www.cnblogs.com/lincappu/p/8296078.html json:用于字符串和Python数据类型间进行转换pickle: 用于python特有的 ...
- Python json与pickle
这是用于序列化的两个模块: • json: 用于字符串和python数据类型间进行转换 • pickle: 用于python特有的类型和python的数据类型间进行转换 Json模块提供了四个功能:d ...
- python json、 pickle 、shelve 模块
json 模块 用于序列化的模块 json,用于字符串 和 python数据类型间进行转换 Json模块提供了四个功能:dumps.dump.loads.load #!/usr/bin/env pyt ...
- python模块(json和pickle模块)
json和pickle模块,两个都是用于序列化的模块 • json模块,用于字符串与python数据类型之间的转换 • pickle模块,用于python特有类型与python数据类型之间的转换 两个 ...
- python学习之day5,装饰器,生成器,迭代器,json,pickle
1.装饰器 import os import time def auth(type): def timeer(func): def inner(*args,**kwargs): start = tim ...
- Python序列化之json与pickle
1.json介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Progra ...
- python序列化模块json和pickle
序列化相关 1. json 应用场景: json模块主要用于处理json格式的数据,可以将json格式的数据转化为python的字典,便于python处理,同时也可以将python的字典或列表等对象转 ...
- python 序列化之JSON和pickle详解
JSON模块 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类 ...
- Python常用模块 (2) (loging、configparser、json、pickle、subprocess)
logging 简单应用 将日志打印到屏幕 import logging logging.debug('debug message') logging.info('info message') log ...
随机推荐
- docker中的镜像中运行Django项目
首先要在镜像中 安装python3 以及 django2.0.4 目前我用的是这两个版本. 进入镜像 创建项目 进入项目中修改setting文件 将引号和星号添加进括号中 ALLOWED_HOSTS ...
- 【intern】最长公共子串、编辑距离、KMP 等
这可能是一个很长的blog…… # from https://blog.csdn.net/justheretobe/article/details/51764587 #!/usr/bin/env py ...
- FhqTreap的区间翻转
学 Fhq 就是为了尽量不去写某毒瘤数据结构,所以自然要来杠一杠某数据结构的经典操作:区间反转 听起来玄乎,但只需要一个小 trick 就行了:把原来的区间以下标作为权值建成 Treap , 这样整棵 ...
- ffmypeg 视频处理类库使用方法
(经常用到ffmpeg 做一些视频数据的处理转换等,用来做测试,今天总结了一下,参考了网上部分朋友的经验,一起在这里汇总了一下,有需要的朋友可以收藏测试一下,有问题欢迎在下面回帖交流,谢谢;by te ...
- swoole 4种PHP回调函数风格
匿名函数 $server->on('Request', function ($req, $resp) use ($a, $b, $c) { echo "hello world" ...
- 协议形式化分析Scyther 资料整理
1.性能分析 目前来说形式化的分析已经成为安全协议的一种很流行的方法,但是每种工具都用其不同适合的协议,Scyther软件是一种形式化分析工具,极大的促进了协议的分析和设计,scyther工具在运行界 ...
- Bootstrap-datepicker3官方文档中文翻译---Options/选项(原文链接 http://bootstrap-datepicker.readthedocs.io/en/latest/index.html)
Options/选项 带“Date”的所有选项都可以处理 Date 对象; 字符串格式化根据 给定的 format 而定; 相对于今天的时间变量, 如 “-1d”, “+6m +1y”等等, 其中有效 ...
- CentOS7.6最小化纯净版安装xfce桌面
安装Xfce桌面环境 yum groupinstall "X Window system" yum install epel-release yum groupinstall xf ...
- log4j警告:WARN Please initialize the log4j system properly 的解决方法
出现这个问题的原因则是因为没有为log4j建立配置文件导致的.所以解决问题的方法很简单,只要在 src文件目录下建立配置文件即可: 右键点击src -> New -> File 文件 ...
- python基础day2
一.python字符串 字符串是 Python 中最常用的数据类型.可以使用引号('或")来创建字符串 1.1Python访问字符串中的值 Python不支持单字符类型,单字符在 Pytho ...