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

提取API响应数据时遭遇TypeError: list indices must be integers or slices, not str

解决randomuser.me API调用中的TypeError问题

错误原因

从API返回的响应可以看到,response['results']是列表类型(被方括号[]包裹),即便你指定了results=1,接口依然会返回包含单个用户对象的列表。而你的代码直接用字符串'name'索引这个列表,就会触发TypeError: list indices must be integers or slices, not str——列表仅支持整数索引或切片,不能用字符串索引。

修正后的代码

只需将results = response['results']改为results = response['results'][0],取出列表中唯一的用户对象,后续字段访问即可正常执行:

response = requests.get('https://randomuser.me/api?results=1&gender=&password=upper,lower,12&exc=register,picture,id&nat=US', headers=headers).json()
# 取出列表中的第一个(也是唯一一个)用户对象
results = response['results'][0]
firstname = results['name']['first']
lastname = results['name']['last']
streetname = results['location']['street']['name']
streetnumber = results['location']['street']['number']
city = results['location']['city']
state = results['location']['state']
zipcode = results['location']['postcode']
phone = results['phone']
print(firstname, lastname, streetname, streetnumber, city, state, zipcode, phone)

原错误代码

response = requests.get('https://randomuser.me/api?results=1&gender=&password=upper,lower,12&exc=register,picture,id&nat=US', headers=headers).json()
results = response['results']
firstname = results['name']['first']
lastname = results['name']['last']
streetname = results['location']['street']['name']
streetnumber = results['location']['street']['number']
city = results['location']['city']
state = results['location']['state']
zipcode = results['location']['postcode']
phone = results['phone']
print(firstname, lastname, streetname, streetnumber, city, state, zipcode, phone)

完整报错信息

Traceback (most recent call last):
  File "c:\Users\user\documents\main\main.py", line 100, in <module>
    GetInfo()
  File "c:\Users\user\documents\main\main.py", line 36, in InfoGen
    firstname = results['name']['first']
TypeError: list indices must be integers or slices, not str

API响应示例

{    
    "results": [{        
        "gender": "male",        
        "name": {            
            "title": "Mr",            
            "first": "Vilho",            
            "last": "Nevala"        
        },        
        "location": {            
            "street": {                
                "number": 5260,                
                "name": "Satakennankatu"            
            },            
            "city": "Ypäjä",            
            "state": "Päijät-Häme",            
            "country": "Finland",            
            "postcode": 90828,            
            "coordinates": {                
                "latitude": "63.8355",                
                "longitude": "-80.4611"            
            },            
            "timezone": {                
                "offset": "-10:00",                
                "description": "Hawaii"            
            }        
        },        
        "email": "vilho.nevala@example.com",        
        "login": {            
            "uuid": "f918cf9e-edd0-4723-aca9-a7b835933d64",            
            "username": "happyfish285",            
            "password": "hfjZmaLSgLLs",            
            "salt": "411bCjmy",            
            "md5": "1ce0803440b62127f514fcf1481bff03",            
            "sha1": "48a8ca9e4ad776b996cba0748242d2f764d4de19",            
            "sha256": "8f450337df8bb4a51edfbce0aa79c76afdc8f550c2ace3710175ecee59b6a27b"        
        },        
        "dob": {            
            "date": "1974-04-04T22:25:46.000Z",            
            "age": 48        
        },        
        "registered": {            
            "date": "2021-08-14T08:42:14.407Z",            
            "age": 1        
        },        
        "phone": "04-289-786",        
        "cell": "042-381-81-43",        
        "nat": "FI"    
    }],    
    "info": {        
        "seed": "38da251006442a4a",        
        "results": 1,        
        "page": 1,        
        "version": "1.4"    
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 03:15:58