example.json文件如下
{
"page": "user",
"uri": "/userinfo",
"elements": [
{
"var_name": "username",
"description": "登录用户名"
},
{
"var_name": "password",
"description": "登录密码"
}
],
"data": {
"userlist": [
{
"username": "张三",
"password": "******"
},
{
"username": "李四",
"password": "******"
}
],
"total": 2
}
}
读取json文件(解析json文件)
with open('example.json', 'r') as jsonfile:
json_string = json.load(jsonfile)
解释:
json.load是decode的一种方式,即将json文件中的数据类型解析成python的数据类型,数据类型解析前后的规则如下表:
即json文件(object)解析成了一个大字典(dict),字典中嵌套了list/unicode/boolean/None/dict等数据类型.
- 其他说明:
json.load是解析json文件的;json.loads是解析json字符串的,如果直接解析接口的返回诗句,直接用json.loads就好
选择元素
- 按键值选择:
>>> json_string['page']
user
- 根据上面的分析,elements是json的array,会被解析成python的list:
>>> for element in json_string['elements']:
print element
{'description': '登录用户名', 'var_name': 'username'}
{'description': '登录密码', 'var_name': 'password'}
即每一个element都是一个dict,json_string['elements']
是一个列表(list),列表中每个元素都是字典,选择列表中的元素的时候,就要用for循环来遍历了。
- data是json文件中嵌套的json字符串,即也是一个json object,会被解析成python的字典:
>>> json_string['data']
{'userlist': [{'username': '张三', 'password': '******'}, {'username': '李四', 'password': '******'}], 'total': 2}
即json_string['data']
也是一个字典,json_string['data']['userlist']
就可以选择出userlist这个数组了:
>>> json_string['data']['userlist']
[{'username': '张三', 'password': '******'}, {'username': '李四', 'password': '******'}]
>>> json_string['data']['total']
2
Reference
https://docs.python.org/2/library/json.html#basic-usage