0

我正在尝试使用 Azure API 并获取资源。响应是一个大 JSON。

{
...
{
    "id": "/subscriptions/<subscription_name>/resourceGroups/<resouce_group_name>/providers/Microsoft.Compute/virtualMachines/<VM_name>",
    "name": "<VM_name>",
    "type": "Microsoft.Compute/virtualMachines",
    "location": "eastus",
    "tags": {}
},
...
}

我将修改后形式的响应保存在字典中(在名为 self.resources 的变量中,我正在使用类),其中键是id,值是{'name': response['name'], 'type': response['type']}

就像是,

{
  '/subscriptions/<subscription_name>/resourceGroups/<resouce_group_name>/providers/Microsoft.Compute/virtualMachines/<VM_name>': 
                 {
            'name': response['name'],
            'type': response['type']
                 }
}

但是,当我尝试以另一种方法访问 self.resources 中的键时,它给了我 1345 个键中的 528 个键的键错误。

我可以确认密钥存在,因为我可以在获取响应后写入的 JSON 文件中看到它。

我什至尝试从该 JSON 文件中读取而不是使用self.resources,但错误仍然存​​在。

这可能是什么原因?我正在使用 python 3.8,Windows 10。

4

1 回答 1

0

所以我解决了这个问题,这是一个非常愚蠢的问题,实际上我使用了两个 API,正如我所说,一个是获取资源,另一个 API 用于警报,两者都有资源 ID,但在警报中一个是虚拟机名称戴着帽子。

我确认它是因为我没有逐字比较,而只是使用 VS 代码查找选项进行搜索,并且不区分大小写。

我希望它可以解决任何为 ID 苦苦挣扎的人的问题。

于 2020-04-11T08:57:49.533 回答