【发布时间】:2020-06-21 20:59:39
【问题描述】:
这两个都是新手。
我正在使用 requests.get 访问一个 API,它返回一个包含俱乐部和活跃俱乐部数量的数组。
clubs = requests.get ('https://api.sumting.com/so on/and so forth', headers={'Authorization': myToken})
clubdata = clubs.json()
print (clubdata)
我得到这样的东西:
{
"clubs": [
{
"golf_association_id": 1,
"club_number": 2,
"club_name": "Otterkill Golf & Country Club",
"phone": "8454272020",
"is_dac": false,
"technology_provider": "Nope",
"email": "",
"authorized": null,
"is_test": false,
"status": "Active",
"club_category": "Private",
"short_name": "",
"website": "",
"usga_version": "",
"handicap_chairperson": "",
"date": "2019-08-13T14:06:55.928Z",
"created_at": "2019-08-13T14:06:55.928Z",
"updated_at": "2019-08-13T14:06:55.928Z",
"logo": null,
"club_type": "",
"alt_text": null,
"id": 10001,
"city": "Campbell Hall",
"state": "NY"
}
],
"meta": {
"active_clubs_count": 548
}
}
我需要遍历“id”并调用另一个 api。我尝试过的几件事中最新的是这样的:
clubs = requests.get ('https://api.sumting.com/so on/and so forth', headers={'Authorization': myToken})
clubdata = clubs.json()
##print (clubdata)
decoded = json.loads(clubdata)
# Access data
for x in decoded['id']:
print (x['club_name'])
结果如下:
Traceback(最近一次调用最后一次): 文件“C:\Program Files (x86)\Python38-32\Scripts\test-login.py”,第 28 行,在 解码 = json.loads(clubdata) 文件“C:\Program Files (x86)\Python38-32\lib\json__init__.py”,第 341 行,加载中 raise TypeError(f'JSON对象必须是str, bytes or bytearray, ' TypeError: JSON 对象必须是 str、bytes 或 bytearray,而不是 dict
我显然不明白我需要了解什么,但已经走到了这一步,我希望在正确的方向上轻轻推动将帮助我继续前进。
提前致谢。
【问题讨论】:
-
你为什么要把
clubs.json()的结果传给json.loads()?