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

Python提取API响应中所有country字段值报错问题排查

错误根因

接口返回的json_response['data']字段值是存储国家信息字典的列表,不是单层字典,所以直接用['country']字符串作为索引访问列表时,就会抛出TypeError: list indices must be integers or slices, not str错误。
你修改后加[0]能拿到第一个国家名称,是因为[0]是列表合法的整数索引,取到了列表内第一个字典元素,再读取该字典的country键就能拿到对应值,但这种写法仅访问了列表的单个元素,自然无法获取全部国家值。

正确实现代码

遍历data列表,逐个提取每个元素里的country字段即可拿到全量国家名称:

import requests
response = requests.get("https://countriesnow.space/api/v0.1/countries")
json_response = response.json()

# 提取所有国家名称存入列表
all_country_names = [country_item['country'] for country_item in json_response['data']]

# 打印结果校验
print(all_country_names)
校验使用说明
  • 拿到all_country_names列表后,做匹配校验时直接判断待校验文本是否存在于该列表即可,示例:is_match = target_text in all_country_names
  • 后续调试接口返回值时,可以先通过type(字段值)确认目标字段的数据类型,打印字段首个元素确认内部结构,能快速定位这类索引类型错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 17:06:28