从python中的多个字典返回结果

时间:2018-03-12 21:04:32

标签: python json python-3.x

我正在学习Python(3.6)来处理JSON中返回的API数据(对我来说也是新手)。 API调用返回26个文件,这些文件包含我们的整个数据集 - 第1页,共26页,第2页,共26页等。

我能够遍历单个字典来获取所需的解析结果,但需要返回所有字典的结果。尝试使用此处的建议合并它们,但未成功。以下代码仅返回上一个字典的结果:

mkt = {**mkt1, **mkt2}

解析脚本是:

for prop in mkt["properties"]:
    for space in mkt["properties"][0 - len(mkt)]["spaces"]:
        try:
            if prop["name"][1:8] == "TESTING":
                del prop
            else:
                print(prop["name"][0:5], prop["name"][6:], space["floor"]["name"], space["suite"])
        except:
            pass

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

谢谢johnashu!

您的解决方案对我有用!

为了澄清任何刚刚开始的人,我们创建了一个词典列表,如下所示:

mkt = [mkt1, mkt2, mkt3...mkt26]

一旦我们有了字典列表,代码块就被包装在代码中以遍历所有字典,如johnashu所示。

最后一条语句已更新,以引用词典列表:

for dictionary in mkt:    
    iter_dict(dictionary)

答案 1 :(得分:0)

假设您在其他数据结构列表中包含所有词典,并且解析代码适用于单个词典。

您可以将代码包装在函数中,然后使用for循环为每个字典调用该函数。

我应该帮助您的代码更具可读性。

def iter_dict(mkt):
""" 
Takes a dictionary as an argument for parsing information
"""

    for prop in mkt["properties"]:
        for space in mkt["properties"][0 - len(mkt)]["spaces"]:
            try:
                if prop["name"][1:8] == "TESTING":
                    del prop
                else:
                    print(prop["name"][0:5], prop["name"][6:], space["floor"]["name"], space["suite"])
            except:
                pass

for dictionary in dict_list:
    iter_dict(dictionary)