我正在学习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
任何帮助将不胜感激!
答案 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)