You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:将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}")

关键说明

  1. 为什么之前的方法不对:

    • 你用enumerate(json_data)时,得到的value是完整的酒厂字典,而非键值对,所以打印出来是索引加整个字典,不符合预期。
    • 你用json_data[0]只能拿到第一个字典,无法处理列表里的所有对象。
  2. 优化点:

    • requests库的.json()方法可以直接将响应内容解析为Python对象(这里是列表),无需手动调用json.loads(response.text),代码更简洁高效。

内容的提问来源于stack exchange,提问作者leeseemonkey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 03:47:47