Python调用Arbeitnow Jobs API报错:'str'对象没有属性'data'
问题解决:正确访问Arbeitnow Jobs API返回的嵌套字典内容
问题根源
你遍历jobs字典时,默认迭代的是字典的键(也就是字符串'data'、'links'、'meta'),所以job是字符串类型,自然没有.data属性,导致报错'str' object has no attribute 'data'。
解决方案
要访问嵌套字典里的data内容,需要先通过键索引jobs['data']拿到对应的职位列表,再遍历这个列表里的每个职位项。另外,字典的内容要通过[]访问,而不是.(.是类对象的属性访问方式)。
修正后的代码
import requests url='https://arbeitnow.com/api/job-board-api' def get_jobs(): req = requests.get(url) if req: # 直接用requests的json()方法解析响应,更简洁 jobs = req.json() # 获取data对应的职位列表 job_list = jobs['data'] # 遍历每个职位 for job in job_list: # 示例:访问职位的标题、公司名等字段 print(f"职位标题:{job['title']}") print(f"公司:{job['company_name']}") print("---") # 也可以直接打印整个职位字典查看所有字段 # print(job) else: print(f'请求错误: {req.status_code}') get_jobs()
额外说明
- 可以先打印
jobs['data']查看返回的职位数据结构,确认每个职位包含的字段 requests.get(url).json()等价于json.loads(req.text),是更推荐的响应解析方式
内容的提问来源于stack exchange,提问作者Diego Freire
相关产品推荐
相关产品推荐

