笔记:
一:简介
(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的更多相关文章

  1. Python json和pickle模块

    用于序列化的两个模块 json,用于字符串 和 python数据类型间进行转换 pickle,用于python特有的类型 和 python的数据类型间进行转换 Json模块提供了四个功能:dumps. ...

  2. python json、pickle

    文章部分转自:https://www.cnblogs.com/lincappu/p/8296078.html json:用于字符串和Python数据类型间进行转换pickle: 用于python特有的 ...

  3. Python json与pickle

    这是用于序列化的两个模块: • json: 用于字符串和python数据类型间进行转换 • pickle: 用于python特有的类型和python的数据类型间进行转换 Json模块提供了四个功能:d ...

  4. python json、 pickle 、shelve 模块

    json 模块 用于序列化的模块 json,用于字符串 和 python数据类型间进行转换 Json模块提供了四个功能:dumps.dump.loads.load #!/usr/bin/env pyt ...

  5. python模块(json和pickle模块)

    json和pickle模块,两个都是用于序列化的模块 • json模块,用于字符串与python数据类型之间的转换 • pickle模块,用于python特有类型与python数据类型之间的转换 两个 ...

  6. python学习之day5,装饰器,生成器,迭代器,json,pickle

    1.装饰器 import os import time def auth(type): def timeer(func): def inner(*args,**kwargs): start = tim ...

  7. Python序列化之json与pickle

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

  8. python序列化模块json和pickle

    序列化相关 1. json 应用场景: json模块主要用于处理json格式的数据,可以将json格式的数据转化为python的字典,便于python处理,同时也可以将python的字典或列表等对象转 ...

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

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

  10. Python常用模块 (2) (loging、configparser、json、pickle、subprocess)

    logging 简单应用 将日志打印到屏幕 import logging logging.debug('debug message') logging.info('info message') log ...

随机推荐

  1. Spring Cloud微服务集成配置中心

    1. 搭建Spring Cloud Config配置中心(见上一篇博客) 2. 创建微服务项目bounter-simon-app,pom文件如下: <?xml version="1.0 ...

  2. ORA-01466: 无法读取数据 - 表定义已更改

    前几天同事同事误删除数据,经查询发现数据在7:13分时候还是全量 628W行: 于是他将现在的表复制了个备份,其中有数据200W: 于是为了省事,想要直接闪回全表,就把这个表truncate了.... ...

  3. Android 插件化和热修复知识梳理

    概述 在Android开发中,插件化和热修复的话题越来越多的被大家提及,同时随着技术的迭代,各种框架的发展更新,插件化和热修复的框架似乎已经日趋成熟,许多开发者也把这两项技术运用到实际开发协作和正式的 ...

  4. 常见jquery面试题

    jQuery 面试问题和答案 JavaScript 是客户端脚本的标准语言,而 jQuery 使得编写 JavaScript 更加简单.你可以只用写几行的jQuery 代码就能实现更多的东西. 它是最 ...

  5. python介绍及下载

    python介绍 Python是一种计算机程序设计语言.是一种面向 对象的动态类型语言,支出被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多的被用于独立的.大型醒 ...

  6. Django By Example 总结

    从3月1号到3月23号总共24天完成了三个项目,时间很赶,学的很充实,但是憋的有点难受了,从下周开始就有上机实验了,抽不出来很多时间学课外的东西了.任务进度拖延了一个星期的进度,主要是因为我懒.... ...

  7. GO语言一行代码实现反向代理

    本文,介绍了什么是反向代理,如何用go语言实现反向代理. 至于他的标题, "GO语言一行代码实现反向代理 | Writing a Reverse Proxy in just one line ...

  8. PHP左侧菜单栏的管理与实现

    以thinkPHP5.0为例 后台config.php文件里配置 //配置文件设置菜单内容属性 'menu' => [ [ 'name' => '菜单栏1', 'url' => '/ ...

  9. Redis持久化persistence

    一.前言 由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁盘上,当redis重启后,可以从磁盘中恢复数据. R ...

  10. 在SOUI中使用布局模板

    概要 注意:布局模板是SOUI 2.8.0.4 新增加的功能.之前版本不支持. SOUI的listview等一系统控件支持通过模板来创建列表项,这里要说的模板不是指listview中的使用的列表项模板 ...