python中用于序列化的两个模块
- json 用于【字符串】和【python基本数据类型】之间进行转换
- pickle 用于【python特有的类型】 和 【python基本数据类型】间进行转换
Json模块提供了四个功能:dumps、dump、loads、load
pickle模块提供了四个功能:dumps、dump、loads、load
json更加适合跨语言,字符串,基本数据类型
pickle ,python 复杂类型的序列化,仅适用于python
一、json 模块
json提供了四个功能:dumps 、dump、loads 、load
1.将python基本数据类型转换成字符串类型
import json dic = {'k1':'v1'} #将python基本数据类型转换成字符串形式 result = json.dumps(dic) print(result,type(result))
输出结果:
{"k1": "v1"} <class 'str'>
2.将python字符串形式转换成基本数据类型
s1 = '{"k1":123}' #将python字符串形式转换成基本数据类型 dic = json.loads(s1) print(dic,type(dic))
输出结果:
{'k1': 123} <class 'dict'>
3.将数据通过特殊的形式转换为所有程序语言都认识的字符串,并写入文件
import json li = [11,22,33] json.dump(li,open('db1','w'))
把列表li 转换为字符串并写入到文件
结果:就是把[11, 22, 33] 写入到db1文件中
4.将文件中的字符串转换为python的基本数据类型
import json li2 = json.load(open('db1','r')) print(li,type(li))
输出结果:
[11, 22, 33] <class 'list'>
5.序列化的使用:
import requests import json response = requests.get('http://wthrcdn.etouch.cn/weather_mini?city=北京') response.encoding = 'utf-8' dic = json.loads(response.text) print(type(dic)) print(dic)
二、pickle模块
pickle模块提供了四个功能:dumps、dump、loads、load
1.pickle.dumps 将python基本数据类型转换成字符串类型
import pickle li = [11,22,33] r = pickle.dumps(li) print(r)
结果:
b'x80x03]qx00(Kx0bKx16K!e.'
2.pickle.loads 将python字符串形式转换成基本数据类型
import pickle li = [11,22,33] r = pickle.dumps(li) #print(r) result = pickle.loads(r) print(result)
结果:
[11, 22, 33]
3.pickle.dump 将数据通过特殊的形式转换为所有程序语言都认识的字符串,并写入文件
import pickle li = [11,22,33] pickle.dump(li,open('db2','wb'))
4.pickle.load 将文件中的字符串转换为python的基本数据类型
import pickle li = [11,22,33] pickle.dump(li,open('db2','wb')) result = pickle.load(open('db2','rb')) print(result)
结果:
[11, 22, 33]