如何用Python从JSON数组中获取指定设施的免费车位数量?
获取特定自行车停车场的免费车位解决方案
你之前写的for 'facilityName' == "Stationsplein":是错误的Python语法,循环需要先遍历数据集合,再对每个元素做条件判断。下面是两种可行的解决方法:
方法一:在遍历中添加条件判断
修改你现有的循环代码,在遍历每个设施时检查名称是否匹配,匹配时输出结果:
import json import requests data = requests.get("https://stallingsnet.nl/api/1/parkingcount/utrecht") parkingData = json.loads(data.text) for facility in parkingData: # 判断当前设施名称是否为目标名称 if facility["facilityName"] == "Stationsplein": print(f"Stationsplein的免费车位:{facility['freePlaces']}") # 找到目标后退出循环,无需继续遍历 break
方法二:用next()快速查找单个匹配项
如果只需要找一个目标设施,用next()函数可以更简洁地获取结果,还能处理找不到的情况:
import json import requests data = requests.get("https://stallingsnet.nl/api/1/parkingcount/utrecht") parkingData = json.loads(data.text) # 生成器表达式筛选目标,找不到时返回None target = next((f for f in parkingData if f["facilityName"] == "Stationsplein"), None) if target: print(f"Stationsplein的免费车位:{target['freePlaces']}") else: print("未找到名为Stationsplein的停车场设施")
关键说明
- Python的
for循环是用来遍历可迭代对象(比如这里的parkingData列表)的,不能直接把条件写在for后面。 - 添加
break可以在找到目标后立即停止遍历,提升效率。 next()方法适合只需要单个匹配结果的场景,避免不必要的循环。
内容的提问来源于stack exchange,提问作者Adri van den Wittenboer
相关产品推荐
相关产品推荐

