Python json模块

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)

猜你喜欢

转载自www.cnblogs.com/kubernets/p/8966099.html