json
json是网页后台与服务器交换数据的一种格式,由服务器发出请求,服务器返回json格式的数据,或者浏览器发送json格式的数据给服务器,服务器再返回json格式的数据。
Json本质就是一个字符串,算上符号也是字符串,需要使用方法转换成python可用的格式(列表,字典等)
python对象转换成json字符串
json.dumps():把一个Python对象编,码转换成Json字符串。
>>> import json
>>> python_obj = [[1,2,3],123,123.123,'abc',{'key1':(1,2,3),'key2':(4,5,6)},True,False,None]
>>> json_str=json.dumps(python_obj)
>>> print json_str
[[1, 2, 3], 123, 123.123, "abc", {"key2": [4, 5, 6], "key1": [1, 2, 3]}, true, false, null]
在从python对象转换成json的过程中,数据会有一些改变:
json.dumps()方法提供了很多好用的参数可供选择,比较常用的有:
- sort_keys(对dict对象进行排序,我们知道默认dict是无序存放的)
- skipkeys(对于键不是基本类型Python字典键值对将被过滤)
- indent(格式化输出用的)等参数。
>> python_obj2={"key2": [4, 5, 6], "key1": [1, 2, 3]}
>>> json_str2=json.dumps(python_obj2)
>>> print json_str2
{
"key1": [
1,
2,
3
],
"key2": [
4,
5,
6
]
}
>>> json_str2=json.dumps(python_obj2,sort_keys=False,indent=2)
>>> print json_str2
{
"key2": [
4,
5,
6
],
"key1": [
1,
2,
3
]
}
将python字符串转化成python对象
json.loads():把Json格式字符串解码,转换成Python对象。
>>> print json.loads(json_str)
[[1, 2, 3], 123, 123.123, u'abc', {u'key2': [4, 5, 6], u'key1': [1, 2, 3]}, True, False, None]
在转化过程中,数据会发生如下变化:
字符串与数据类型间的关系
requests.get()方法中也有直接对json操作的方法
a=request.get(url=url)
a.json()
json()方法可以直接将获取到的json数据变成可以操作的python对象。