This is going to be a example how to create a new dictionary out of an output :
1st the dictionary that we are going to change with only specific items with different key names :
from pprint import pprint
lldp = {
"Eth2/1": [
{
"remote_chassis_id": "2C:C2:60:54:DC:2C",
"parent_interface": "",
"remote_port": "Ethernet2/1",
"remote_port_description": "Ethernet2/1",
"remote_system_name": "nxos2.twb-tech.com",
"remote_system_description": (
"Cisco NX-OS(tm) titanium, Software (titanium-d1), Version 7.3(1)D1(1), Interim"
" version 7.3(1)D1(0.10), RELEASE SOFTWARE Copyright (c) 2002-2013, 2015 by Cisco"
" Systems, Inc. Compiled 1/11/2016 16:00:00"
),
"remote_system_capab": "B, R",
"remote_system_enable_capab": "B, R",
}
],
"Eth2/2": [
{
"remote_chassis_id": "2C:C2:60:64:E1:5F",
"parent_interface": "",
"remote_port": "Ethernet2/2",
"remote_port_description": "Ethernet2/2",
"remote_system_name": "nxos2.twb-tech.com",
"remote_system_description": (
"Cisco NX-OS(tm) titanium, Software (titanium-d1), Version 7.3(1)D1(1), Interim"
" version 7.3(1)D1(0.10), RELEASE SOFTWARE Copyright (c) 2002-2013, 2015 by Cisco"
" Systems, Inc. Compiled 1/11/2016 16:00:00"
),
"remote_system_capab": "B, R",
"remote_system_enable_capab": "B, R",
}
],
"Eth2/3": [
{
"remote_chassis_id": "2C:C2:60:72:61:7B",
"parent_interface": "",
"remote_port": "Ethernet2/3",
"remote_port_description": "Ethernet2/3",
"remote_system_name": "nxos2.twb-tech.com",
"remote_system_description": (
"Cisco NX-OS(tm) titanium, Software (titanium-d1), Version 7.3(1)D1(1), Interim"
" version 7.3(1)D1(0.10), RELEASE SOFTWARE Copyright (c) 2002-2013, 2015 by Cisco"
" Systems, Inc. Compiled 1/11/2016 16:00:00"
),
"remote_system_capab": "B, R",
"remote_system_enable_capab": "B, R",
}
],
"Eth2/4": [
{
"remote_chassis_id": "2C:C2:60:70:69:DA",
"parent_interface": "",
"remote_port": "Ethernet2/4",
"remote_port_description": "Ethernet2/4",
"remote_system_name": "nxos2.twb-tech.com",
"remote_system_description": (
"Cisco NX-OS(tm) titanium, Software (titanium-d1), Version 7.3(1)D1(1), Interim"
" version 7.3(1)D1(0.10), RELEASE SOFTWARE Copyright (c) 2002-2013, 2015 by Cisco"
" Systems, Inc. Compiled 1/11/2016 16:00:00"
),
"remote_system_capab": "B, R",
"remote_system_enable_capab": "B, R",
}
],
}
Now This is how we can manage to transform the current output to a specific dictionary :
new_list = []
for intf_name, lldp_data in lldp.items():
lldp_data = lldp_data[0]
new_entry = {"intf_name": intf_name, "remote_port": lldp_data["remote_port"]}
new_list.append(new_entry)
print()
pprint(new_list)
print()
Reference :


