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

如何用Python读取Excel的external_id列转为列表传入SDK参数

你现有代码的问题在于:x.append(df['external_id'])是将整列数据作为单个元素存入列表,最终得到的是嵌套结构,不符合接口要求的一维id列表格式,按以下方式修改即可实现需求:

完整实现步骤

1. 修正Excel列读取逻辑,生成符合要求的id列表

import pandas as pd

# 读取Excel的Sheet1表
df = pd.read_excel('abc.xlsx', sheet_name='Sheet1')
# 将external_id列转为一维字符串列表,可按需添加.drop_duplicates()去除重复id
external_id_list = df['external_id'].astype(str).tolist()

2. 直接传入SDK接口获取数据

ps = c.datapoints.retrieve(external_id=external_id_list)

可选扩展:id数量过多时分批请求

如果你的SDK接口对单次传入的id数量有限制,可以用分批请求再合并结果的方式处理:

import pandas as pd

# 第一步读取id列表和上面一致
df = pd.read_excel('abc.xlsx', sheet_name='Sheet1')
external_id_list = df['external_id'].astype(str).tolist()

batch_size = 100 # 可根据接口限制调整单次请求的id数量
all_batch_res = []

for idx in range(0, len(external_id_list), batch_size):
    # 切分当前批次的id
    current_batch = external_id_list[idx:idx+batch_size]
    # 请求当前批次数据
    batch_data = c.datapoints.retrieve(external_id=current_batch)
    all_batch_res.append(batch_data)

# 合并所有批次的结果表,自动按timestamp列对齐
final_result = pd.concat(all_batch_res, axis=1)
# 去除重复的timestamp列
final_result = final_result.loc[:, ~final_result.columns.duplicated()]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 05:09:02