JSON是一种轻量级数据交换格式,一般API返回的数据大多是JSON、XML,如果返回JSON的话,将获取的数据转换成字典,方面在程序中处理
python2.6版本开始加入了JSON模块,python的json模块序列化与反序列化的过程分别是encoding和decoding。
encoding:把一个python对象编码转换成Json字符串。
decoding:把json格式字符串编码转换成python对象。
python3可以使用json模块对json数据进行编码解码,包含以下两个函数
json.dumps(): 对数据进行编码
json.loads(): 对数据进行解码
实例:
>>> import json
>>> data = {'num':100,'name':zhangsan}
>>> json_str = json.dumps(data) ##对数据进行编码
>>> print("Python data: " ,data)
Python data: {'num': 100, 'name': 'zhangsan'}
>>> print("JSON object: " ,json_str)
JSON object: {"num": 100, "name": "zhangsan"}
使用json.load 将json编码的字符串转换成python数据结构
实例:
>>> data = {'num':100,'name':'zhangsan'}
>>> json_str=json.dumps(data)
>>> json_str
'{"num": 100, "name": "zhangsan"}'
>>> data2=json.loads(json_str)
>>> data2
{'num': 100, 'name': 'zhangsan'}
如果要处理的是文件而不是字符串,可以使用json.dump和json.load来处理数据
json.dump()存储,json.load读取
实例
json.dump()
import json
numbers = [2,3,5,7,11,13]
filename = 'numbers.json'
with open(filename,'w') as f_obj:
json.dump(numbers,f_obj) ##将number列表写入到number.json中
json.load()
import json
filename = 'numbers.json'
with open(filename) as f_obj:
numbers = json.load(f_obj)
print(numbers)