python解析json文件回顾(load/loads)

来源:互联网 发布:淘宝怎么看卖家网址 编辑:程序博客网 时间:2024/05/21 09:46

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

原创粉丝点击