python - 在 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”之类的东西传递给打印功能?
解决方案
如果要打印部分字典,可以尝试:
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))