[英]Strava GPX upload with python module requests is giving a ValueError - why?
我不明白為什么會出現這個 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)
錯誤回溯
*回溯(最近一次通話):
<module> 中的文件“D:/projekte/11_github/poc_runtastic/poc_code/strava_upload_activities.py”,第 19 行
r = requests.post('https://www.strava.com/api/v3/uploads', headers=headers, files=files)
文件“E:\\Python\\Python38\\lib\\site-packages\\requests\\api.py”,第 117 行,在帖子中
返回請求('post', url, data=data, json=json, **kwargs)
文件“E:\\Python\\Python38\\lib\\site-packages\\requests\\api.py”,第 61 行,在請求中
返回 session.request(method=method, url=url, * kwargs)
文件“E:\\Python\\Python38\\lib\\site-packages\\requests\\sessions.py”,第 528 行,在請求中
prep = self.prepare_request(req)
文件“E:\\Python\\Python38\\lib\\site-packages\\requests\\sessions.py”,第 456 行,在 prepare_request 中
p.准備(
文件“E:\\Python\\Python38\\lib\\site-packages\\requests\\models.py”,第 319 行,准備中
self.prepare_body(數據,文件,json)
文件“E:\\Python\\Python38\\lib\\site-packages\\requests\\models.py”,第 512 行,在 prepare_body 中
(body, content_type) = self._encode_files(files, data)
文件“E:\\Python\\Python38\\lib\\site-packages\\requests\\models.py”,第 141 行,在
_encode_files
for (k, v) 在文件中:
ValueError:沒有足夠的值來解包(預期為 2,得到 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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.