求助:将API返回的JSON列表转为Python字典并遍历键值对
问题解决:遍历API返回的字典列表键值对
你卡壳的核心原因很明确——这个API返回的JSON是由多个字典组成的列表,而不是单个字典。你之前成功的例子是单个字典,所以直接用.items()就行,但现在得先遍历列表里的每一个字典对象,再对每个字典做键值对遍历。
修正后的代码
import requests url = "https://api.openbrewerydb.org/v1/breweries?by_city=miami&per_page=3" response = requests.get(url) print("\nhttp status code: ", response.status_code, "- ", response.reason) # 直接用requests内置的json解析方法,更简洁 json_data = response.json() print("JSON data type:", type(json_data)) print('\n正确遍历所有酒厂的键值对:') # 遍历列表中的每个酒厂字典,用enumerate加序号方便区分 for idx, brewery in enumerate(json_data, start=1): print(f"\n=== 第 {idx} 个酒厂 ===") # 遍历当前字典的键值对 for key, value in brewery.items(): print(f"{key} : {value}")
关键说明
为什么之前的方法不对:
- 你用
enumerate(json_data)时,得到的value是完整的酒厂字典,而非键值对,所以打印出来是索引加整个字典,不符合预期。 - 你用
json_data[0]只能拿到第一个字典,无法处理列表里的所有对象。
- 你用
优化点:
requests库的.json()方法可以直接将响应内容解析为Python对象(这里是列表),无需手动调用json.loads(response.text),代码更简洁高效。
内容的提问来源于stack exchange,提问作者leeseemonkey
相关产品推荐
相关产品推荐

