我在 Python 3 中实现了一些 API,这些 API 允许我根据班级代码接收有关学校的信息。但我想知道如何通过类代码获取信息。
例子:
我输入代码GF528S
我希望程序告诉我班级(3C INF
)、地址(Address 1, Milan
),如果可能的话还包括学校名称(Test School 1
) 和之前的键。提前致谢!当然我使用 JSON 结构:
{
"schools": {
"Lombardia": {
"Milano": {
"Milano": {
"Test School 1": {
"sedi": {
"0": {
"indirizzo": "Address 1, Milan",
"classi": {
"INFORMATICA E TELECOMUNICAZIONI": {
"3C INF": "GF528S"
}
}
},
"1": {
"indirizzo": "Address 2, Milan",
"classi": {
"INFORMATICA E TELECOMUNICAZIONI": {
"1A IT": "HKPV5P",
"2A IT": "QL3J3K",
"3A INF": "X4E35C",
"3A TEL": "ZAA7LC"
}
}
}
}
}
}
}
}
}
}
当我从数据库中获取值时,如果有帮助的话,它们会被转换为 python 字典!
经过一系列测试,感谢您的回答,我发现for in .items()
当显示时被阻止indirizzo
场地:
特别是,它无法在这些词典中搜索:
{'classi': {'INFORMATICA E TELECOMUNICAZIONI': {'3C INF': 'GF528S'}}, 'indirizzo': 'Address 1, Milan'}
{'classi': {'INFORMATICA E TELECOMUNICAZIONI': {'1A IT': 'HKPV5P', '2A IT': 'QL3J3K', '3A INF': 'X4E35C', '3A TEL': 'ZAA7LC'}}, 'indirizzo': 'Address 2, Milan'}
我认为问题恰恰在于indirizzo
场地。如果你想先执行 for 操作,可以将其保存在变量中并从 json 中删除:
del val ["address"]
问题是我无法将地址与班级关联起来。
代码:
def dictionary_check(input):
indirizzo = ""
for key,value in input.items():
if isinstance(value, dict):
dictionary_check(value)
else:
for i in value:
indirizzo += i["indirizzo"]
del i['indirizzo']
for x, y in i.items():
for z, j in y.items():
for a in j.items():
if a[1] == "HKPV5P":
print(indirizzo)
print("Classe: " + a[0])