试图从python中的json响应中解析值

时间:2017-09-21 18:13:18

标签: python json

我试图解析字典中的特定值。该字典是来自API查询的json有效负载。我已经尝试了很多方法,但我却无法完全得到我想要的东西。

我的目标是:

  1. 解析现有名称列表。我有一个从文件导入的空白字典。
  2. 根据API响应查看该名称是否处于活动状态。
  3. 打印活动用户列表:如果用户处于活动状态打印("用户:%s处于活动状态"%用户)
  4. 然后打印非活动用户列表:否则打印("用户:%s不活动"%用户)
  5. 获取我拥有的值:

    #!/usr/bin/env python
    
    import requests
    from requests.auth import HTTPBasicAuth
    import json
    import sys
    import getpass
    
    password = getpass.getpass()
    url = "https://myurl/blah/blah/getusers=true"
    request = requests.get(url,auth=HTTPBasicAuth('username', password.format(password)), verify=True)
    
    if(request.ok):
        data = json.loads(request.content)
        for key in data:
            users = data[key]
            print users
    else:
      request.raise_for_status()
    

    返回的是什么:

    https://myurl/blah/blah/getusers=true
    getusers
    users{u'max-results': 50, u'items': [{u'displayName': u'testfirstname, testlastname', u'name': u'testfirstname', u'self': u'https://blah/blah',               u'emailAddress': u'myemail@email.com', u'key': u'myusername', u'active': True, u'timeZone': u'America/Los_Angeles'},
    

    我不知道是否因为我无法找到要获得的密钥或内容。回复的关键是:你活跃':真实。我试图拉动活跃的'价值但无济于事。任何帮助,将不胜感激。

    编辑:更多信息。因此,有效负载返回包含每个用户数据的用户列表。 "活跃:真实"只是一个定义系统中用户的参数。我想获取我已经拥有的用户列表并检查API以查看列表中的每个用户是否为"活动:True"或者"活跃:错误"。 我不确定为什么返回前两行(url和getusers)

1 个答案:

答案 0 :(得分:1)

在我看来,你想要的一切都在json的物品等级中。尝试这样的事情:

data = json.loads(request.content)
items = data['items']
active=[]
inactive=[]
for i in range(len(items)):
    user = items[i]
    if user['active']:
        active.append(user)
    else:
        inactive.append(user)