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

使用列表推导式调用API获取name时遇TypeError错误

问题原因排查

核心错误原因

错误 TypeError: string indices must be integers 明确说明:你试图用字符串索引(比如 ['link'])去访问一个字符串类型的变量,但字符串只能用整数来索引(比如 i[0] 取第一个字符)。放到你的代码里,问题出在 i['link'] 这部分——df['assigned_to'] 中的元素 i 不是字典,而是字符串。

具体可能的场景

  • 场景1:assigned_to 存的是字符串形式的字典
    比如DataFrame里这个字段的值是类似 '{"link": "https://example.com", ...}' 的字符串,而不是Python原生字典。这种情况下直接用 i['link'] 必然报错。
  • 场景2:assigned_to 本身就是普通字符串
    比如这个字段存的是用户名、ID之类的纯文本,根本没有 link 键,自然无法通过字典索引访问。

验证方法

先打印 df['assigned_to'] 的前几个元素,确认每个 i 的类型和内容:

for i in df['assigned_to'].head(5):
    print(type(i), i)

如果输出是 <class 'str'> 加上类似 "{...}" 的内容,对应场景1;如果是普通文本字符串,对应场景2。

修复思路

  • 针对场景1:把字符串转成字典,用 json.loads() 处理:
    import json
    c = [requests.get(json.loads(i)['link'], auth=(username, password)).json()['result']['name'] for i in df['assigned_to']]
    
    注意要额外处理可能的JSON解析错误(比如格式不规范的字符串)。
  • 针对场景2:检查DataFrame的数据源,确认 assigned_to 字段是否真的包含带 link 的字典结构,可能是数据导入时的格式错误,或者字段名混淆了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 09:42:04