代码之家  ›  专栏  ›  技术社区  ›  risail

枚举JSON返回

  •  0
  • risail  · 技术社区  · 9 年前

    如何枚举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
    
    2 回复  |  直到 9 年前
        1
  •  0
  •   supermitch    9 年前

    这不是怎么回事 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中),但这部分可能会让您感到厌烦。

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

        2
  •  0
  •   Kevin    9 年前

    如果看不到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)