序列化

1.什么是python序列化?

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

序列化就是将python的数据类型转换成字符串

反序列化就是将字符串转换成python的数据类型

 

2.Python中用于序列化的两个模块

  • json     用于【字符串】和 【python基本数据类型】 间进行转换
  • pickle   用于【python特有的类型】 和 【python基本数据类型】间进行转换

Json模块提供了四个功能:dumps、dump、loads、load

pickle模块提供了四个功能:dumps、dump、loads、load

 

一、Json

1.dumps:

将python的基本数据类型转换成字符串:

import json
			
dic = {'k1':'v1'}
print(dic,type(dic))

result = json.dumps(dic)
print(result,type(result))

# 输出
{'k1': 'v1'} <class 'dict'>
{"k1": "v1"} <class 'str'>

2.loads:

将字符串形式转换成python的基础数据类型:

import json
			
s1 = '{"k1":123}'
dic = json.loads(s1)
print(dic,type(dic))

# 输出
{'k1': 123} <class 'dict'>

#注意: 字符串形状(格式)必须与python的基本数据类型保持一致

# 在其他语言中’ ’ 引起来的是字符, '" "引起来的是字符串
li = '["sheldon","jerry"]'
ret = json.loads(li)

# 通过loads去反序列化时,一定要记住,字符串一定要用" "
li = "['sheldon','jerry']"  # 这样是错误的
import requests
import json

response = requests.get('http://wthrcdn.etouch.cn/weather_mini?city=上海')
response.encoding = 'utf-8'
print(response.text,type(response.text))

dic = json.loads(response.text)
print(dic,type(dic))
json获取天气信息

相关文章: