Python下JSON和pickle的用法介绍(附代码)


本文摘自php中文网,作者不言,侵删。

本篇文章给大家带来的内容是关于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类型转换对应表:

1

2

3

4

5

6

7

8

9

10

11

12

13

_______________________________________________

|    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:在程序运行过程中希望保存一个数据,重用或者发送给其他人,可以采用这方式
将数据写入文件,支持所有数据类型!

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

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中openpyxl模块基本用法

装了anaconda要卸载Python

回味Python基本数据类型

Python适合网页编程吗

Python怎么输出分数形式

Python如何实现excel多表合并(附代码)

Python如何安装cvxopt

Python是面向对象的吗

Python如何使用urllib/urllib2访问http的get及post详解

Python 多行匹配模式了解

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...