使用 python 模块请求上传 Strava GPX 时出现 ValueError - 为啥?
Posted
技术标签:
【中文标题】使用 python 模块请求上传 Strava GPX 时出现 ValueError - 为啥?【英文标题】:Strava GPX upload with python module requests is giving a ValueError - why?使用 python 模块请求上传 Strava GPX 时出现 ValueError - 为什么? 【发布时间】:2021-12-21 05:28:10 【问题描述】:我不明白为什么会出现这个 ValueError?
发布请求import requests
headers = 'authorization': 'Bearer XXXXXXXXXXXXXXXX'
files = ['file': open('../poc_data/Sport-sessions/GPS-data/2012-08-09_05-32-43-UTC_55d566fa93bc7d9d1757b8e0.gpx', 'rb'), 'data_type': 'gpx', 'Content-Type': 'multipart/form-data']
r = requests.post('https://www.strava.com/api/v3/uploads', headers=headers, files=files)
错误回溯
*Traceback(最近一次通话最后一次):
ValueError:没有足够的值来解包(预期 2,得到 1)
【问题讨论】:
【参考方案1】:这种效果的原因与 API 设计有关:它需要一个名为 headers 的显式字典和一个名为 params 的字典。 在上面给出的示例中,我只发送了一个(标题),这解释了 ValueError。
此代码有效:
import requests
files =
'file': open('../poc_data/Sport-sessions/GPS-data/2012-08-09_05-32-43-UTC_55d566fa93bc7d9d1757b8e0.gpx', 'rb')
headers =
'authorization': 'Bearer XXXXXXXXXXXXXXXX'
params =
'data_type': 'gpx'
url = 'https://www.strava.com/api/v3/uploads'
r = requests.post(files=files, headers=headers, params=params, url=url)
【讨论】:
以上是关于使用 python 模块请求上传 Strava GPX 时出现 ValueError - 为啥?的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 jQuery 执行 POST 请求以获取 Strava OAuth 令牌