Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python脚本从Json中提取信息,但需要修改键和值_Python_Json_Dictionary_Key - Fatal编程技术网

Python脚本从Json中提取信息,但需要修改键和值

Python脚本从Json中提取信息,但需要修改键和值,python,json,dictionary,key,Python,Json,Dictionary,Key,我正在编写一个Python脚本来登录服务器并收集设备 { "code": 200, "data": { "1": { "console": "telnet", "id": 1, "name": "R1", &qu

我正在编写一个Python脚本来登录服务器并收集设备

{
    "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)