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

Python如何遍历API返回的用户列表 提取所有id属性存入新列表

提取用户id的实现方案

一、先修正原有函数的问题

你当前代码里的函数返回的是json.dumps()序列化后的JSON字符串,无法直接遍历提取字段,需要修改为返回原始的Python列表对象,同时优化冗余代码:

import requests
import json
def get_all_time_entries():
    url_address = "my url"  
    headers = {
        "Authorization": "Bearer " + "my api",
        "Harvest-Account-ID": "my ID"
    }
    all_time_entries = []

    # 遍历所有分页获取JSON对象,range循环会自动递增page,不需要手动加1
    for page in range(1, 15):
        url = "my url"+str(page)
        response = requests.get(url=url, headers=headers).json()
        # 如果接口返回的用户列表嵌套在某个字段下,比如response["users"],这里要改成extend对应字段
        all_time_entries.append(response)       

    # 不需要序列化,直接返回原始列表即可
    return all_time_entries

二、循环提取所有id存入新列表

方法1:基础for循环实现(符合你要求的循环写法)

# 先调用函数拿到原始用户数据列表
all_user_data = get_all_time_entries()
# 初始化存储id的空列表
user_id_list = []

for user in all_user_data:
    # 提取id字段,用get方法可以避免无id字段时报错
    current_id = user.get("id")
    user_id_list.append(current_id)

# 可以打印查看结果
print(user_id_list)

方法2:更简洁的列表推导式实现

all_user_data = get_all_time_entries()
user_id_list = [user.get("id") for user in all_user_data]

补充说明:如果你的分页接口返回的结构里,用户列表是嵌套在data/users这类下级字段中,需要把all_time_entries.append(response)改为all_time_entries.extend(response["对应字段名"]),否则你拿到的列表元素是分页响应对象而不是用户对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 20:45:01