枚举 JSON return

Enumerate JSON return

如何枚举一个JSONreturn?目标是获得一个总计数变量以添加到我的打印语句中...

我有

for i in services_js["reports"]:
            print " Service Name: " + i["instances"]["serviceName"]

并尝试过:

for i in enumerate(services_js["reports"]):
            print " Service Name: " + i["instances"]["serviceName"]

但得到:

TypeError: tuple indices must be integers, not str

如果没有看到 JSON 的结构,很难确定,但根据键名,您可能想要

count = 0
for report in services_js["reports"]:
    for instance in report["instances"]:
        count += 1
        print "Service Name: " + instance["serviceName"]
print "there were {} total instances".format(count)

这不是 enumerate 的工作方式:

for i in enumerate(services_js["reports"]):
    print " Service Name: " + i["instances"]["serviceName"]

它是这样工作的:

animals = ['rat', 'cat', 'mouse', 'dog']
for i, animal in enumerate(animals, start=1):
    print('# {}: {}'.format(i, animal))

注意如何 enumerate returns 一个元组,(ianimal 只是计数?

您可能还有其他问题(在您的 JSON 中),但这部分可能会让您失望。

你看到的错误是因为 i 实际上是元组 (0, some_json) 然后你试图做 i['instance'],所以它说你不能使用字符串作为元组的索引。