我试图解析字典中的特定值。该字典是来自API查询的json有效负载。我已经尝试了很多方法,但我却无法完全得到我想要的东西。
我的目标是:
获取我拥有的值:
#!/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)
答案 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)