一、json的特点
1、只能处理简单的可序列化的对象;(字典,列表,元祖)
2、json支持不同语言之间的数据交互;(python - go,python - java)
二、使用场景
1、玩游戏的时候存档和读取记录。
2、虚拟机挂起、保存或者恢复、读档的时候。
三、语法:
1、简单的数据类型:
1、在内存中进行转换:
import json
#py基本数据类型转换字符串:
r = json.dumps([11,22,33])
#li = '["alex","eric"]'
li = "['alex','eric']"
re = json.loads(li) #反序列化的时候,一定要使用双引号""。
print(re,type(re)) 2、在文件中转换:(在dumps和loads基础上增加了个写读文件)
import json 文件格式的序列化:
li = [11,22,33]
json.dump(li,open('db','w')) 文件格式的反序列化:
li = json.load(open('db','r'))
print(li,type(li))
2、复杂的数据类型:
序列化:
#!/usr/bin/env python
# -*- coding:utf8 -*-
# Author:Dong Ye import json test = r'test.txt' info = {
'name' : 'alex',
'age' : 32 } with open(test,'w',encoding='utf-8') as f:
f.write( json.dumps(info) )
反序列化:
#!/usr/bin/env python
# -*- coding:utf8 -*-
# Author:Dong Ye import json test = r'test.txt' with open(test,'r',encoding='utf-8') as f:
data = json.loads( f.read() )
print(data)
print(data['name'])
print(data['age'])
使用场景
调用其他平台的接口时,一般都会返回一个字符串,eg:“字典,列表,url路径等”。
import requests
import json response = requests.get("http://http://wthrcdn.etouch.cn/weather_mini?ciyp=北京")
response.encoding = 'utf-8' dic = json.loads(requests.text)
print(response,type(response))