我正在尝试迭代json api,我无法获得我需要的数据
这是一个api响应示例。 “我知道这不是完整或有效的json :)”
{
"status": "running",
"reasons": [],
"nodes": {
"Server1": {
"status": "running",
我正在使用一个简单的for循环来迭代它!
for platforms in sbNode:
request = urllib2.Request(API URL)
json_res = json.load(urllib2.urlopen(request))
for node in json_res['nodes']:
print node['status']
我收到一条错误消息
TypeError:字符串索引必须是整数
和normaly我只是打印for循环来查看json数据,但它只是打印Server1。
我迷失了......
帮助!!!
由于
答案 0 :(得分:2)
Windows 7 machine
是一本字典。迭代字典只会为您提供密钥,因此json_res['nodes']
的第一个值可以是node
。如果您想要键和值,可以使用'Server1'
迭代:
.items()
如果您只想要节点的值,可以使用for key, node in json_res['nodes'].items():
:
.values()
答案 1 :(得分:0)
由于json_res['nodes']
是字典
json_res['nodes'] = {
"Server1": {
"status": "running",
...
您可以添加嵌套循环以打印服务器状态:
for node in json_res['nodes']:
for server in node:
print server['status']