如何从给定的json中获取特定值

2024-09-29 22:22:22 发布

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

我有下面的json

`{
    "count": 4,
    "node": [{
        "assetRecord": {
            "additionalhardware": null,
            "admin": null,
            "assetNumber": null,
            "autoenable": null,
            "building": null,
            "category": "Unspecified",
            "circuitId": null,
            "comment": null,
            "connection": null,
            "cpu": null,
            "dateInstalled": null,
            "department": null,
            "description": null,
            "displayCategory": null,
            "division": null,
            "enable": null,
            "floor": null,
            "hdd1": null,
            "hdd2": null,
            "hdd3": null,
            "hdd4": null,
            "hdd5": null,
            "hdd6": null,
            "id": 10817,
            "inputpower": null,
            "lastModifiedBy": "",
            "lastModifiedDate": 1491855810758,
            "lease": null,
            "leaseExpires": null,
            "maintContractExpiration": null,
            "maintContractNumber": null,
            "maintcontract": null,
            "managedObjectInstance": null,
            "managedObjectType": null,
            "manufacturer": null,
            "modelNumber": null,
            "notifyCategory": null,
            "numpowersupplies": null,
            "operatingSystem": null,
            "password": null,
            "pollerCategory": null,
            "port": null,
            "rack": null,
            "rackunitheight": null,
            "ram": null,
            "region": null,
            "room": null,
            "serialNumber": null,
            "slot": null,
            "snmpcommunity": null,
            "storagectrl": null,
            "supportPhone": null,
            "thresholdCategory": null,
            "username": null,
            "vendor": null,
            "vendorAssetNumber": null,
            "vendorFax": null,
            "vendorPhone": null,
            "vmwareManagedEntityType": null,
            "vmwareManagedObjectId": null,
            "vmwareManagementServer": null,
            "vmwareState": null,
            "vmwareTopologyInfo": null
        },
        "categories": [],
        "createTime": 1491855810758,
        "foreignId": null,
        "foreignSource": null,
        "id": "564",
        "label": "10.21.204.174",
        "labelSource": "A",
        "lastCapsdPoll": 1491855810984,
        "type": "A"
    }, {
        "assetRecord": {
            "additionalhardware": null,
            "admin": null,
            "assetNumber": null,
            "autoenable": null,
            "building": null,
            "category": "Unspecified",
            "circuitId": null,
            "comment": null,
            "connection": null,
            "cpu": null,
            "dateInstalled": null,
            "department": null,
            "description": null,
            "displayCategory": null,
            "division": null,
            "enable": null,
            "floor": null,
            "hdd1": null,
            "hdd2": null,
            "hdd3": null,
            "hdd4": null,
            "hdd5": null,
            "hdd6": null,
            "id": 10589,
            "inputpower": null,
            "lastModifiedBy": "",
            "lastModifiedDate": 1490819238331,
            "lease": null,
            "leaseExpires": null,
            "maintContractExpiration": null,
            "maintContractNumber": null,
            "maintcontract": null,
            "managedObjectInstance": null,
            "managedObjectType": null,
            "manufacturer": null,
            "modelNumber": null,
            "notifyCategory": null,
            "numpowersupplies": null,
            "operatingSystem": null,
            "password": null,
            "pollerCategory": null,
            "port": null,
            "rack": null,
            "rackunitheight": null,
            "ram": null,
            "region": null,
            "room": null,
            "serialNumber": null,
            "slot": null,
            "snmpcommunity": null,
            "storagectrl": null,
            "supportPhone": null,
            "thresholdCategory": null,
            "username": null,
            "vendor": null,
            "vendorAssetNumber": null,
            "vendorFax": null,
            "vendorPhone": null,
            "vmwareManagedEntityType": null,
            "vmwareManagedObjectId": null,
            "vmwareManagementServer": null,
            "vmwareState": null,
            "vmwareTopologyInfo": null
        },
        "categories": [],
        "createTime": 1490819238331,
        "foreignId": null,
        "foreignSource": null,
        "id": "561",
        "label": "10.21.205.148",
        "labelSource": "A",
        "lastCapsdPoll": 1490819238557,
        "type": "A"
    }, {
        "assetRecord": {
            "additionalhardware": null,
            "admin": null,
            "assetNumber": null,
            "autoenable": null,
            "building": null,
            "category": "Unspecified",
            "circuitId": null,
            "comment": null,
            "connection": null,
            "cpu": null,
            "dateInstalled": null,
            "department": null,
            "description": null,
            "displayCategory": null,
            "division": null,
            "enable": null,
            "floor": null,
            "hdd1": null,
            "hdd2": null,
            "hdd3": null,
            "hdd4": null,
            "hdd5": null,
            "hdd6": null,
            "id": 7554,
            "inputpower": null,
            "lastModifiedBy": "",
            "lastModifiedDate": 1477563144159,
            "lease": null,
            "leaseExpires": null,
            "maintContractExpiration": null,
            "maintContractNumber": null,
            "maintcontract": null,
            "managedObjectInstance": null,
            "managedObjectType": null,
            "manufacturer": null,
            "modelNumber": null,
            "notifyCategory": null,
            "numpowersupplies": null,
            "operatingSystem": null,
            "password": null,
            "pollerCategory": null,
            "port": null,
            "rack": null,
            "rackunitheight": null,
            "ram": null,
            "region": null,
            "room": null,
            "serialNumber": null,
            "slot": null,
            "snmpcommunity": null,
            "storagectrl": null,
            "supportPhone": null,
            "thresholdCategory": null,
            "username": null,
            "vendor": null,
            "vendorAssetNumber": null,
            "vendorFax": null,
            "vendorPhone": null,
            "vmwareManagedEntityType": null,
            "vmwareManagedObjectId": null,
            "vmwareManagementServer": null,
            "vmwareState": null,
            "vmwareTopologyInfo": null
        },
        "categories": [],
        "createTime": 1477563144159,
        "foreignId": null,
        "foreignSource": null,
        "id": "462",
        "label": "10.21.50.153",
        "labelSource": "A",
        "lastCapsdPoll": 1490722710498,
        "type": "A"
    }, {
        "assetRecord": {
            "additionalhardware": null,
            "admin": null,
            "assetNumber": null,
            "autoenable": null,
            "building": null,
            "category": "Unspecified",
            "circuitId": null,
            "comment": null,
            "connection": null,
            "cpu": null,
            "dateInstalled": null,
            "department": null,
            "description": null,
            "displayCategory": null,
            "division": null,
            "enable": null,
            "floor": null,
            "hdd1": null,
            "hdd2": null,
            "hdd3": null,
            "hdd4": null,
            "hdd5": null,
            "hdd6": null,
            "id": 5119,
            "inputpower": null,
            "lastModifiedBy": "",
            "lastModifiedDate": 1461419153008,
            "lease": null,
            "leaseExpires": null,
            "maintContractExpiration": null,
            "maintContractNumber": null,
            "maintcontract": null,
            "managedObjectInstance": null,
            "managedObjectType": null,
            "manufacturer": null,
            "modelNumber": null,
            "notifyCategory": null,
            "numpowersupplies": null,
            "operatingSystem": null,
            "password": null,
            "pollerCategory": null,
            "port": null,
            "rack": null,
            "rackunitheight": null,
            "ram": null,
            "region": null,
            "room": null,
            "serialNumber": null,
            "slot": null,
            "snmpcommunity": null,
            "storagectrl": null,
            "supportPhone": null,
            "thresholdCategory": null,
            "username": null,
            "vendor": null,
            "vendorAssetNumber": null,
            "vendorFax": null,
            "vendorPhone": null,
            "vmwareManagedEntityType": null,
            "vmwareManagedObjectId": null,
            "vmwareManagementServer": null,
            "vmwareState": null,
            "vmwareTopologyInfo": null
        },
        "categories": [],
        "createTime": 1461419153008,
        "foreignId": null,
        "foreignSource": null,
        "id": "389",
        "label": "dummyname_xv1",
        "labelSource": "A",
        "lastCapsdPoll": 1490722710502,
        "type": "A"
    }],
    "totalCount": 271
}

上面的代码实际上被转储到一个文件中(比如abc.txt文件)它是一种有效的JSON格式。我需要打开文件并遍历到“label”字段。 我需要写一个代码,应该提取/打印的“标签”值只有当它是一个IP,即0.0.0.0格式的东西

怎么做?你知道吗


Tags: idadmincommentcpuconnectionnulllabelcategory
1条回答
网友
1楼 · 发布于 2024-09-29 22:22:22

尝试使用json模块解析json文件并迭代node

json.load()

Deserialize fp (a .read()-supporting file-like object containing a JSON document) to a Python object using this conversion table.

如果要验证IP字符串是否有效,可以使用inet_aton ()。你知道吗

Convert an IPv4 address from dotted-quad string format (for example, ‘123.45.67.89’) to 32-bit packed binary format, as a string four characters in length.

import json
import socket


for i in json.load(open('ooo.json'))["node"]:
    try:
        socket.inet_aton(i["label"])
        print(i["label"])
    except Exception as e:
        pass

结果:

10.21.204.174
10.21.205.148
10.21.50.153

相关问题 更多 >

    热门问题