我使用Python中的requests模块从restapi中提取信息。数据以JSON格式返回—JSON数组的每个元素表示一个用户,groups子数组表示其Active Directory组。示例条目如下所示:
{
"id": 0101010101,
"createdAt": 111111,
"displayName": "Jones, Steve",
"firstName": "Steve",
"lastName": "Jones",
"groups": [
"All Users",
"Anyville Users (WIN10)",
"Windows 10 Users"
],
"deviceCount": 0
},
{
"id": 0101010102,
"createdAt": 111111,
"displayName": "Smith, Dave",
"firstName": "Dave",
"lastName": "Smith",
"groups": [
"All Users",
"Faketown Users (WIN7)",
"Windows 7 Users"
],
"deviceCount": 0
}
如何遍历JSON数组,评估groups数组是否包含与一组位置(Anyville、Faketown、noweherland)中的任何一个匹配的文本,并将该行放入每个位置的单独对象中?最接近我的是:
faketownUsers = {}
response = requests.request("GET", url, headers=headers)
ir = json.loads(response.text)
data = ir['result']['searchResults']
for row in data:
if "Faketown" in str(row):
faketownUsers.extend(row)
我会这样做:
为了更好地检查/处理错误,我修改了一些其他代码,主要是抛出异常
您可以将对象转换为字符串来检查它是否包含子字符串,而不是将其检查到每个字段中。你知道吗
您的
row
表示完整的字典,但是您需要查看groups
项的内部。groups
是list
,您要查找的字符串是该list
项的一部分。 有很多方法,我举两个例子,方法一:方法2:
您可以将任何其他位置添加到
locations
。你知道吗相关问题 更多 >
编程相关推荐