如何枚举JSON返回?目标是将总计数变量添加到我的打印状态...
我有
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
答案 0 :(得分:0)
很难说没有看到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)
答案 1 :(得分:0)
这不是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如何返回元组,(i
和animal
)而不是只是计数?
您可能还有其他问题(在您的JSON中),但该部分可能会让您失望。
您看到的错误是因为i
实际上是元组(0, some_json)
,然后您尝试i['instance']
,所以它说您可以&# 39; t使用字符串作为元组的索引。