专栏首页python3Python-JSON和pickle

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:
 1 import json
 2 import pickle
 3 # ----------------------------------------------#
 4 # 反序列化
 5 # ----------------------------------------------#
 6 # object
 7 json_str = '{"name":"qiyue", "age":18}'     # JSON字符串
 8 student = json.loads(json_str)    # JSON对象转换为字典
 9 print(student)
10 print(json_str)
11 print(type(student))
12 
13 # object
14 json_str1 = '[{"name":"qiyue", "age":18, "flag":false}, ' \
15             '{"name":"qiyue", "age":18}]'     # JSON字符串
16 student1 = json.loads(json_str1)    # JSON对象转换为字典
17 print(type(student1), student1)
18 print(student1[0])
19 
20 # ----------------------------------------------#
21 # 序列化
22 # ----------------------------------------------#
23 student2 = [
24                 {"name": "qiyue", "age": 18, "flag": False},
25                 {"name": "qiyue", "age": 18}
26            ]
27 
28 json_str1 = json.dumps(student2)    # 转换为字符串后可以利用正则表达式处理字符串
29 print(type(json_str1), json_str1)
30 
31 # ----------------------------------------------#
32 # 处理的是文件
33 # ----------------------------------------------#
34 # 将数据写入文件
35 student3 = [
36                 {"name": "qiyue", "age": 18, "flag": False},
37                 {"name": "qiyue", "age": 18}
38            ]
39 with open('data.json', 'w') as f:
40     json.dump(student3, f)
41 
42 # 读取数据
43 with open('data.json', 'r') as f:
44     data = json.load(f)
45 
46 
47 # dumps(object)将对象序列化
48 list_a = ["English", "Math", "Chinese"]
49 list_b = pickle.dumps(list_a)   # 序列化数据
50 print(list_a)
51 print(list_b)
52 
53 # loads(object)将对象原样恢复,并且对象类型也恢复原来的格式
54 list_c = pickle.loads(list_b)
55 print(list_c)
56 
57 
58 # dumps(object,file)将对象序列化后存储到文件中
59 group1 = ("baidu", "wen", "qingtian")
60 f1 = open('group.txt', 'wb')
61 pickle.dump(group1, f1, True)
62 f1.close()
63 
64 # load(object, file)将文件中的信息恢复
65 f2 = open('group.txt', 'rb')
66 t = pickle.load(f2)
67 f2.close()
68 print(t)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python第三方库系列之一--json

        1. 序列化(Serialization):将对象的状态信息转换为可以存储或可以通过网络传输的过程,传输的格式可以是JSON、XML等。反序列化就是从存...

    py3study
  • Python学习—json模块

    py3study
  • python解析与组装json

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3...

    py3study
  • 你所不知道的php json编码解码

    json解析在php,或者说在任何编程语言中都非常常见。但是,你是否知道,json解析在php中是以扩展形式存在。

    写PHP的老王
  • PHP知识点

    JSON支持 包括json_encode(), json_decode()等函数,JSON算是在web领域非常实用的数据交换格式,可以被JS直接支持,JSON实...

    wangxl
  • 模仿淘宝web扫码登录

    if ($(this).hasClass('qrcode-target-show')){

    用户6182664
  • 使用Python附加到JSON文件

    JSON的完整形式是JavaScript Object Notation。这意味着将使用编程语言的文本组成的脚本(可执行)文件用于存储和传输数据。Python通...

    用户7466307
  • python第三方库系列之一--json

        1. 序列化(Serialization):将对象的状态信息转换为可以存储或可以通过网络传输的过程,传输的格式可以是JSON、XML等。反序列化就是从存...

    py3study
  • day5-json和pickle序列化

    一.json模块 序列化:把一个对象的形态改变一下,使他能够存放在文件中,或者在网络上传输,序列化也叫持久化,是把对象存储到永久介质中,这样就不会因为掉电而丢失...

    用户1679793
  • C++设计模式:Template Method

    Tencent JCoder

扫码关注云+社区

领取腾讯云代金券