Python如何从列表数据中提取所有键为'id'的对应值
代码调整说明
- 移除循环内冗余的
data.append([cursor])语句,避免游标数据混入接口返回的业务数据列表 - 全部分页数据拉取完成后,通过列表推导式提取所有
id字段值 - 支持直接输出顿号分隔的id值,符合你给出的示例格式
修改后完整代码
import requests import json proxies = {"http": "http://176.9.75.42:3128", "http": "http://88.198.50.103:8080"} user_id = 367 URL = f"https://badges.roblox.com/v1/users/{user_id}/badges" data = [] payload = {"limit": 100, "sortOrder": "Asc"} # 首次请求添加代理避免请求失败 resp = requests.get(URL, params=payload, proxies=proxies) blob = resp.json() data.extend(blob["data"]) cursor = blob["nextPageCursor"] while cursor is not None: payload.update({"cursor": cursor}) resp = requests.get(URL, params=payload, proxies=proxies) blob = resp.json() data.extend(blob["data"]) cursor = blob["nextPageCursor"] # 提取所有id值 id_list = [item["id"] for item in data] # 按顿号分隔格式输出 print("、".join(map(str, id_list)))
核心提取逻辑说明
用列表推导式[item["id"] for item in data]直接遍历接口返回的所有badge数据,逐个取出id字段汇总成列表,最后转成字符串输出即可,不会返回其他额外信息。
内容的提问来源于stack exchange,提问作者nkcdvscbjiscd
相关产品推荐
相关产品推荐

