Python JSON解析器看不到单个键

z9zf31ra  于 2023-10-21  发布在  Python
关注(0)|答案(1)|浏览(101)

尝试编写一个脚本来覆盖来自API的JSON,格式如下:

{'disk': 0, 'pid': 1234, 'cpus': 4, 'maxdisk': 80530636800, 'diskwrite': 0, 'netout': 18664223636, 'status': 'running', 'cpu': 0.0288084074674866, 'mem': 5976839531, 'name': 'foo', 'uptime': 102152, 'diskread': 0, 'tags': 'tag1;tag2', 'maxmem': 8589934592, 'netin': 2945853297, 'vmid': 111}

我希望访问的特定键是“tags”键。所有其他键都可以通过这个Python循环访问:

for i in range(len(json['data'])):
  currentVM = json['data'][i]
  print (currentVM['cpu'])

上面的JSON示例是currentVM在一个索引处的输出。然而,如果我在这个例子中用'tags'替换'cpu',我会得到以下错误:

print (currentVM['tags'])
           ~~~~~~~~~^^^^^^^^
KeyError: 'tags'

他们的钥匙显然在那里,所有其他的钥匙似乎工作正常。想知道这个键是一个列表是否会改变它的行为?
创建“currentVM”变量的脚本的当前版本是我认为可能是太多的索引深度的问题,但这并不是这样,因为我仍然得到相同的错误。

6ju8rftf

6ju8rftf1#

每个元素中不能有tags键。使用.get(),以便提供默认值。

print(currentVM.get('tags', ''))

相关问题