Python脚本从Json中提取信息,但需要修改键和值
我正在编写一个Python脚本来登录服务器并收集设备Python脚本从Json中提取信息,但需要修改键和值,python,json,dictionary,key,Python,Json,Dictionary,Key,我正在编写一个Python脚本来登录服务器并收集设备 { "code": 200, "data": { "1": { "console": "telnet", "id": 1, "name": "R1", &qu
{
"code": 200,
"data": {
"1": {
"console": "telnet",
"id": 1,
"name": "R1",
"ram": 512,
"status": 0,
"url": "telnet://127.0.0.1:32769",
"uuid": "ab60e9de-2599-4b67-919a-b769fb6e270d"
},
"2": {
"console": "telnet",
"id": 2,
"name": "R2",
"ram": 512,
"status": 0,
"url": "telnet://127.0.0.1:32770",
"uuid": "206323a6-000b-40bc-a765-9c7e7e5751ee"
},
我需要收集的只是名称和网址。下面是Python脚本的副本
import json
address = '192.168.1.113'
instance = m11.Server(address)
instance.login('admin', 'password', '0')
users = instance.get_all_nodes()
payload = json.loads(users.content)
data = payload['data']
dict = {}
for item in data:
dict[item] = payload['data'][item]['url']
print (dict)
这是我收到的输出的副本
{'1': 'telnet://192.168.1.113:32769', '2': 'telnet://192.168.1.113:32770', '3': 'telnet://192.168.1.113:32771', '4': 'telnet://192.168.1.113:32772', '6': 'telnet://192.168.1.113:32774', '5': 'telnet://192.168.1.113:32773', '7': 'telnet://192.168.1.113:32775', '8': 'telnet://192.168.1.113:32776', '9': 'telnet://192.168.1.113:32777','10':'telnet://192.168.1.113:32778', '11': 'telnet://192.168.1.113:32779', '12': 'telnet://192.168.1.113:32780', '13': 'telnet://192.168.1.113:32781', '14': 'telnet://192.168.1.113:32782', '15': 'telnet://192.168.1.113:32783', '16': 'telnet://192.168.1.113:32784', '17': 'telnet://192.168.1.113:32785', '18': 'telnet://192.168.1.113:32786', '19': 'telnet://192.168.1.113:32787', '20': 'telnet://192.168.1.113:32788', '21': 'telnet://192.168.1.113:32789', '22': 'telnet://192.168.1.113:32790', '23': 'telnet://192.168.1.113:32791', '24': 'telnet://192.168.1.113:32792'}
[在1.365s内完成]
如何修改脚本以键入名称并将url保留为值?
谢谢。试试下面的(a):
输出(针对给定样本数据)
或者只需将脚本中的for循环更改为:
result = {}
for v in payload["data"].values():
result[v["name"]] = v["url"]
print(result)
另外,避免使用dict作为变量名,因为它会隐藏内置dict。请尝试以下(a)项:
输出(针对给定样本数据)
或者只需将脚本中的for循环更改为:
result = {}
for v in payload["data"].values():
result[v["name"]] = v["url"]
print(result)
另外,避免使用dict作为变量名,因为它会影响内置dict。谢谢!!我真的很感激它。我现在就去学习字典理解。谢谢!!我真的很感激它。我现在就去学习字典理解。
result = {}
for v in payload["data"].values():
result[v["name"]] = v["url"]
print(result)