json和pickle

### 序列化

#### 知识点

1. `json`
2. `pickle`

### `json`

用于字符串和`python` 数据类型之间的转换。

假如,我要传送一个字典出去,需要解决两个主要问题:

怎么表达这个字典成一个字符串?怎么把一个字符串,读回一个字典?

因此,我们需要一个标准化的,字符串表达方式,例如JSON,有点类似于,编码与解码。

基本接口:

```python
#1.dumps(python对象)
#通常是,字典,元祖,列表,字符串,数字
#返回的是一个,JSON字符串


#2. loads(string)
#读取一个JSON字符串,如果满足格式标准,那么就会返回出如下四种之一
#字典,列表,字符串,数字

#3. dump(obj, file)
#dumps + open + write

#例:
import json

the_dict = {
'a':123,
'b':456
}
with open('json.txt', 'w') as f:
  json.dump(the_dict, f)

#4. load(file)
#loads + open + read

with open('json.txt','r') as f:
  print json.load(f)
```

#### `pickle`

把变量从内存中变成可存储或传输的过程称之为序列化

`pickle`实现python的bytes类型与python其他数据类型之间的转换。

```python
#1.dumps(python对象)
#通常是,字典,元祖,列表,字符串,数字
#返回的是一个,bytes字符串

#2. loads(string)
#读取一个bytes字符串,如果满足格式标准,那么就会返回出如下四种之一
#字典,列表,字符串,数字

#3. dump(obj, file)
#dumps + open + write

#例:
import pickle

the_dict = {
'a':123,
'b':456
}
with open('pickle.txt', 'wb') as f:
  pickle.dump(the_dict, f)

#4. load(file)
#loads + open + read

with open('pickle.txt','rb') as f:
  xx = pickle.load(f)
print(xxx)

```

原文地址:https://www.cnblogs.com/bytree/p/9432038.html