【发布时间】:2019-03-09 00:54:41
【问题描述】:
下面是我拥有的示例 json 文档或 json 变量。我正在使用 python 来提取输出部分中提到的必填字段。
有人可以帮忙吗?
json_variable =
{
"server01":{
"address":"server01:5454",
"options":{ },
"state":"online"
},
"server02":{
"address":"server02:5454",
"options":{ },
"state":"online"
},
"server03":{
"address":"server03:5454",
"options":{ },
"state":"online"
}
}
for x in json_variable:
print(x["address"])
Error:
Traceback (most recent call last):
File "<string>", line 30, in <module>
File "<string>", line 18, in getServerStatus
TypeError: 'shell.Dict' object is not iterable
我可以通过硬编码以下字段来获得所需的输出,但我想动态地执行它,因为服务器的数量取决于查询的系统和返回的 json。
print(json_variable["server01"]["address"])
print(json_variable["server02"]["address"])
print(json_variable["server03"]["address"])
所需输出:
server01:5454 --> online
server02:5454 --> online
server03:5454 --> online
【问题讨论】:
-
一般来说,要执行此操作,您至少必须对 patterns 进行硬编码以查找,这样代码就知道您有兴趣检索什么.但是,不确定为什么您似乎认为它需要递归完成。
-
到目前为止你尝试了什么?
-
for server in json_variable.values(): print(f"{server['address']} --> {server['status']}") -
@KlausD。我添加了我尝试过的代码。
标签: python json python-2.7