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

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

  • 8
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值