使用python在JSON中查找重复项

2024-10-01 07:51:00 发布

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

我是python新手,我正在努力实现以下目标: 向cloudera Manager的IP发送get请求,该IP将返回具有以下结构的主机的JSON:

{
  "items" : [ {
    "hostId" : "ddcfbea6-8a7c-462c-38f9-0116338e438a",
    "ipAddress" : "1.2.3.4",
    "hostname" : "host.example.com",
    "rackId" : "/rack01",
    "hostUrl" : "http://host.example.com:7180/cmf/hostRedirect/ddcfbea6-8a7c-462c-38f9-0116338e438a"
  }
...
}

JSON可以包含数百个元素,我希望找到所有具有相同ipAddress entry值的元素并打印它们及其键和值。 我怎样才能做到这一点?我用请求模块发送get请求。在


Tags: ipcomjsonhost元素目标getexample
2条回答

您可以创建一个将IP地址映射到对象列表的字典。例如(如果d是示例字典):

ipToObjects = {}

for item in d['items']:
    if 'ipAddress' not in item:
        continue
    ip = item['ipAddress']
    if ip not in ipToObjects:
        ipToObjects[ip] = []
    ipToObject[ip].append(item)

如果你现在想找重复的话:

^{pr2}$

或者根据你的需要做类似的事情。在

对于名为hosts的JSON对象

hosts = {
  "items" : [ {
    "hostId" : "ddcfbea6-8a7c-462c-38f9-0116338e438a",
    "ipAddress" : "1.2.3.4",
    "hostname" : "host.example.com",
    "rackId" : "/rack01",
    "hostUrl" : "http://host.example.com:7180/cmf/hostRedirect/ddcfbea6-8a7c-462c-38f9-0116338e438a"
  }
...
}

你可以像这样按IP地址分组

^{pr2}$

相关问题 更多 >