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

Python新手求助:如何用用户输入填充循环处理API返回的JSON数据

用用户输入控制For循环处理API返回的产品数据

嘿,刚接触Python就开始对接API啦,这真的很棒!针对你的需求,我来一步步拆解怎么实现用用户输入来控制for循环处理那些产品数据~

第一步:先获取API的JSON数据

首先咱们得先把API返回的JSON数据拿到手,这里推荐用requests库(如果还没装的话,先跑pip install requests安装)。示例代码如下:

import requests

# 替换成你实际对接的API地址
api_url = "https://your-api-endpoint.com/products"

try:
    # 发送GET请求获取数据
    response = requests.get(api_url)
    response.raise_for_status()  # 如果请求失败,抛出异常
    # 解析JSON数据,取出products数组
    products = response.json()["products"]
    print(f"成功获取到{len(products)}个产品数据!")
except requests.exceptions.RequestException as e:
    print(f"API请求出错啦:{e}")
    exit()

第二步:根据用户输入设计循环逻辑

接下来就可以根据用户的不同输入需求,来编写对应的for循环了。下面给你几个常见场景的示例:

场景1:用户输入要处理的产品数量

比如用户想只查看前N个产品,咱们可以让用户输入数字,然后循环处理对应数量的产品:

user_input = input("请输入要处理的产品数量:")
try:
    num_to_process = int(user_input)
    # 确保输入的数量不超过产品总数
    num_to_process = min(num_to_process, len(products))
    print(f"正在处理前{num_to_process}个产品:")
    for idx, product in enumerate(products[:num_to_process], 1):
        print(f"{idx}. 产品ID: {product['id']}, 标题: {product['title']}, 可见性: {product['visibility']}")
except ValueError:
    print("请输入有效的数字哦!")

场景2:用户输入关键词筛选产品

如果用户想找标题包含特定关键词的产品,咱们可以让用户输入关键词,然后在循环里做匹配:

keyword = input("请输入要筛选的产品标题关键词:").strip()
if not keyword:
    print("关键词不能为空哦!")
else:
    matched_products = []
    for product in products:
        # 忽略大小写匹配,提升用户体验
        if keyword.lower() in product["title"].lower():
            matched_products.append(product)
    
    if matched_products:
        print(f"找到{len(matched_products)}个匹配的产品:")
        for product in matched_products:
            print(f"ID: {product['id']}, 标题: {product['title']}, 链接: {product['url']}")
    else:
        print(f"没有找到包含'{keyword}'的产品哦!")

场景3:用户输入可见性状态筛选产品

如果用户想筛选可见/不可见的产品,可以让用户输入对应状态,然后循环过滤:

valid_visibility = ["visible", "hidden"]
visibility_input = input(f"请输入要筛选的可见性状态(可选值:{', '.join(valid_visibility)}):").strip().lower()

if visibility_input not in valid_visibility:
    print(f"请输入有效的状态:{', '.join(valid_visibility)}")
else:
    filtered_products = [p for p in products if p["visibility"] == visibility_input]
    print(f"找到{len(filtered_products)}个可见性为'{visibility_input}'的产品:")
    for product in filtered_products:
        print(f"ID: {product['id']}, 标题: {product['fulltitle']}, 更新时间: {product['updatedAt']}")

小提示

  • 记得处理用户的无效输入(比如非数字、不符合要求的状态值),避免程序崩溃;
  • 如果API返回的数据量很大,可以考虑分页获取,不过刚接触的话先从完整数据开始练手就好;
  • 可以根据自己的实际需求,拓展更多的输入筛选条件(比如按创建时间范围筛选等)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:55:35