json 模块
JSON
(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写。一般API返回的数据大多是JSON
、XML
,如果返回JSON
的话,将获取的数据转换成字典,方便在程序中处理。
JSON
库经常用的有两种方法dumps()
和loads()
;还有 dump()
和load()
-
dump()
和load()
通常用于对文件进行编码和解码,用的较少。 -
dumps()
和loads()
通常用于对字符串进行编码和解码
dumps()
json.dumps()
用于将python
对象编码成JSON
字符串
>>> dict = {'user':[{'user1': 123}, {'user2': 456}]}
>>> type(dict)
<type 'dict'>
>>> json_str = json.dumps(dict)
>>> type(json_str)
<type 'str'>
>>> print json_str
'{"user": [{"user1": 123}, {"user2": 345}]}'
## 请注意如果直接使用 str() 函数对字典进行字符串处理
>>> json_str_test = str(dict)
>>> print json_str_test
"{'user': [{'user1': 123}, {'user2': 345}]}"
直接进行字符串处理,和通过 json.dumps() 处理的结果虽然都是字符串,但是字符串中的 key 的格式不一样。这种不一样导致了 通过 json.dumps() 处理后的数据属于合法数据。查看 JSON 数据是否合法可以使用下面这个网站。\
loads()
json.loads()
用于将JSON
字符串解码为python
对象,该函数返回python
字段的数据类型。
>>> dict = {'user':[{'user1': 123}, {'user2': 456}]}
>>> json_str = json.dumps(dict)
>>> print json_str
{"user": [{"user1": 123}, {"user2": 456}]}
>>> d = json.loads(json_str)
>>> print d
{u'user': [{u'user1': 123}, {u'user2': 456}]}
## 可以通过 Key 来获取相对应的 Vlaue
>>> d['user']
[{u'user1': 123}, {u'user2': 456}]