首页 > 解决方案 > 在 Python 中打印某些 JSON 数据

问题描述

我正在通过 NAPALM 检索 JSON 数据,它输出了相当多的数据,我希望能够只打印其中的几个元素。我当前的代码是;

from napalm import get_network_driver
import json
import paramiko

driver = get_network_driver('nxos_ssh')
LD9AGGSW01 = driver('10.249.9.44', 'username', 'password',)
LD9AGGSW01.open()

json_data = LD9AGGSW01.get_facts()

print(json.dumps(json_data, indent=4))

我得到的 JSON 数据是;

{
    "uptime": 58404121,
    "vendor": "Cisco",
    "os_version": "7.0(3)I3(1)",
    "serial_number": "FDO211410B8",
    "model": "Nexus9000 C92160YC-X chassis",
    "hostname": "Nexus-Switch-01",
    "fqdn": "",
    "interface_list": [
        "mgmt0",
        "Ethernet1/1",
        "Ethernet1/2",
    ]
}

我如何将诸如“模型”、“主机名数据”和“mgmt0”之类的东西传递给打印功能?

标签: pythonjsonpython-3.x

解决方案


如果要打印部分字典,可以尝试:

print(
    {
        "model": json_data["model"],
        "hostname": json_data["hostname"],
        "first_interface": json_data["interface_list"][0],
    }
)

您还可以实现提取功能,如下所示:

def extract(data):
    return {
        "model": data["model"],
        "hostname": data["hostname"],
        "first_interface": data["interface_list"][0],
    }


print(extract(json_data))

推荐阅读