笔记:
一:简介
(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. mac 终端里进入mysql和退出

    先在偏好设置里启动mysql服务 获取超级权限 在终端输入代码 sudo su 输入完后获取超级权限 终端显示 sh-3.2# 输入本机密码(Apple ID密码) 接着通过绝对路径登陆 代码 /us ...

  2. SHOT

  3. Ansible运维自动化工具19个常用模块使用实例【转】

    一.模块列表 1.setup 2.ping 3.file 4.copy 5.command 6.shell 7.script 8.cron 9.yum 10.service 11.group 12.u ...

  4. 开头不讲"Hello Word",读尽诗书也枉然 : Word 操作组件介绍 - Spire.Doc (转)

      [原文地址]http://www.cnblogs.com/liqingwen/p/5898368.html 序 本打算过几天简单介绍下组件 Spire.XLS,突然发现园友率先发布了一篇,既然 x ...

  5. iOS程序依赖管理的工具——CocoaPods

    1. 简介 CocoaPods是一个负责管理iOS项目中第三方开源代码的工具,其源码在Github上开源.使用CocoaPods可以节省设置和更新第三方开源库的时间并提高工作效率. 2. CocoaP ...

  6. day17——其他内置函数

    zip函数: print(list(zip(('a','b','c'),(1,2,3)))) p={'name':'alex','age':18,'gender':'none'} print(list ...

  7. iframe 加form提交数据

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. Django—视图

    索引 一.URLconf 二.视图 三.HttpReqeust对象 3.1 QueryDict对象 3.2 GET和POST属性 四.HttpResponse对象 4.1 子类JsonResponse ...

  9. C#应用编程小例子-01-渐显的窗体

    C#应用编程小例子-01-渐显的窗体 using System; using System.Windows.Forms; namespace WindowsFormsApp2 { public par ...

  10. oh-my-zsh: 让终端飞

    上一次推文写了JupyterLab:程序员的笔记本神器,介绍的是如何在web端打造一个便捷的开发环境,发出后反响还不错 因此我决定再写几篇能提升程序员工作以及学习效率的文章,如果能形成一个系列那是最好 ...