在数据框中循环JSON Python 2

hts6caw3  于 2023-05-30  发布在  Python
关注(0)|答案(1)|浏览(142)

我是Python 2的新手,我想循环查询生成的JSON并返回相同的字符串:
这是我的JSON:

"{\"Machine\":{\"0\":\"Mach1\",\"1\":\"Mach2\",\"2\":\"Mach3\",\"3\":\"Mach4\",\"4\":\"Mach5\"}}"

我不明白的是这里的关键是什么,我如何循环得到这样的结果:

Mach1
Mach2
Mach3
..

甚至是Mach1。
我试过这个:

def printDict(dict):
    for key,v, value in d.iteritems():
        if type(v) is dict:
            printDict(v)
        else:
            print "{0} : {1}".

但似乎不起作用

ryhaxcpt

ryhaxcpt1#

第一个错误:

def printDict(dict):
    ...
    if type(v) is dict:

dict不再是内置的字典类型,您已经在本地覆盖了它。type(v) is dict也不是检查某个东西是否是其他东西的示例的好方法(它没有考虑继承)。
第二个错误:

for key,v, value in d.iteritems():

.iteritems()方法返回一个对的序列,而不是三元组。d也是一个未定义的局部变量。
终于

print "{0} : {1}".

是语法错误。
您正在寻找的页面:

def print_dict(dct):
    for key, value in dct.iteritems():
        if isinstance(value, dict):
            print_dict(value)
        else:
            print '{0} : {1}'.format(key, value)

如果你从原始的JSON(即一个字符串),那么你必须先反序列化它:

import json
dct = json.loads(my_json)

相关问题