私はPythonのプログラミングと学習に慣れていないので、ご容赦ください。助けていただければ幸いです....
ファイルをストレージ サービスにアップロードする必要があるプロジェクトに取り組んでおり、現在 box API を使用しようとしています。このページのコードを操作しようとしています:
Python の Request ライブラリを使用して、添付ファイルとパラメーターを使用して API 呼び出しを行う方法
import requests
import json
#the user access token
access_token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
#the name of the file as you want it to appear in box
filename = 'box_file'
#the actual file path
src_file = "C:\Python\Wildlife.wmv"
#the id of the folder you want to upload to
parent_id = '0'
headers = { 'Authorization: Bearer {0}'.format(access_token)}
url = 'https://upload.box.com/api/2.0/files/content'
files = { 'filename': (filename, open(src_file,'rb')) }
data = { "parent_id": parent_id }
response = requests.post(url, data, files, headers)
file_info = response.json()
私は多くのことを試しましたが、実際にはこれ以上うまくいきませんでした。そのため、それらのコードのわずかな適応を投稿しています。現在、次のエラーが発生しています。
Traceback (most recent call last):
File "transfer2.py", line 18, in <module>
response = requests.post(url, data, files, headers)
TypeError: post() takes from 1 to 3 positional arguments but 4 were given
他のいくつかの実験で file_info = response.json()" にも問題がありました。誰かがこれを機能させるのを手伝ってくれたら、とても感謝しています。
それが役立つ場合、私はpython 3を使用しています。
edit 4/6 要求に応じて、次の行を変更しました: response = requests.post(url, data=data, files=files, headers=headers)
これは私が今得るエラーです:
Traceback (most recent call last):
File "transfer2.py", line 18, in <module>
response = requests.post(url, data=data, files=files, headers=headers)
File "C:\Python34\lib\site-packages\requests\api.py", line 108, in post
return request('post', url, data=data, json=json, **kwargs)
File "C:\Python34\lib\site-packages\requests\api.py", line 50, in request
response = session.request(method=method, url=url, **kwargs)
File "C:\Python34\lib\site-packages\requests\sessions.py", line 450, in request
prep = self.prepare_request(req)
File "C:\Python34\lib\site-packages\requests\sessions.py", line 381, in prepare_request
hooks=merge_hooks(request.hooks, self.hooks),
File "C:\Python34\lib\site-packages\requests\models.py", line 305, in prepare
self.prepare_headers(headers)
File "C:\Python34\lib\site-packages\requests\models.py", line 410, in prepare_headers
self.headers = CaseInsensitiveDict((to_native_string(name), value) for name, value in headers.items())
AttributeError: 'set' object has no attribute 'items'