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)

 

posted @ 2018-05-02 10:34  Future_road  阅读(114)  评论(0)    收藏  举报