字典键的问题

我是 Python 新手,我的代码需要一些支持。我正在使用一些通用 API 来接收以 JSON 格式返回的有关网络设备的信息


这是我的代码


def device_config():

            init = login()

            vedge_api = os.path.join(vmanage_url, 'dataservice/system/device/vedge')

            get = token[vmanage_url].get(vedge_api, verify=False)

            device_inventory = json.loads(get.content)

            inventory_json = device_inventory['data']

            print(inventory_json)

我从 inventory_json 得到以下输出(部分输出)

这里的问题是输出在一些包含多个字典的列表中,其中一些不提供 deviceIP 的键值


for key in inventory_json:

    print(key['deviceIP'])


...         print(key['deviceIP'])

... 


    10.10.1.63

    10.10.1.60

    10.10.1.61

    10.10.1.62

    Traceback (most recent call last):

      File "<stdin>", line 2, in <module>

    KeyError: 'deviceIP'

所以我得到了 10.10.1.63 等的初始结果,然后在没有这个键的情况下点击字典


我尝试了一些 True/False 逻辑或 if key['deviceIP'] 在逻辑中但对我不起作用。


您能否提一些建议?


胡子哥哥
浏览 123回答 2
2回答

慕莱坞森

您可以先检查然后打印,如下所示:if&nbsp;'deviceIP'&nbsp;in&nbsp;key: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(key['deviceIP'])或者,您可以使用get(key,default_value)方法dictionary:print(key.get('deviceIP',"No&nbsp;deviceIP"))

ITMISS

您可以使用以下方法检查密钥是否存在:if&nbsp;'deviceIP'&nbsp;in&nbsp;key: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(key['deviceIP'])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python