使用Python尝试从json响应中解析值

2024-04-18 08:53:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试解析字典中的特定值。该字典是来自API查询的json负载。我试过很多方法,但都不能得到我想要的。你知道吗

我的目标是:

  1. 解析现有名称的列表。我有一本从文件导入的空白词典。你知道吗
  2. 查看该名称是否在API响应中处于活动状态。你知道吗
  3. 打印活动用户列表:如果用户是活动的打印(“用户:%s是活动的”%user)
  4. 然后打印非活动用户列表:else print(“用户:%s不活动”%User)

要获取我的值:

#!/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'},

我不知道是不是因为我找不到钥匙。响应中的键是:u'active':True。我尝试过提取“active”值,但没有效果。任何帮助都将不胜感激。你知道吗

编辑:更多信息。因此,有效负载返回一个用户列表,其中包含每个用户的数据。“active:True”只是定义系统中用户的一个参数。我想获取一个已经拥有的用户列表,并检查API,看看列表中的每个用户是“active:True”还是“active:False”。 我不知道为什么返回前两行(url和getusers)


Tags: 用户httpsimportapijsontrueurl列表
1条回答
网友
1楼 · 发布于 2024-04-18 08:53:08

在我看来,您想要的一切都在json的items级别内。尝试以下操作:

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)

相关问题 更多 >