python requests postとファイルアップロードの両方を行う方法

同時にpostとファイルアップロードの情報があまり見当たらなかったのでメモ。

postしたい値はdataに、アップロードしたいファイルはfilesにそれぞれ配列でセットすればOK。

url = 'https://xxxxxxxxxxxxxxxxxx'
data = {
    'key1': 'value'
}
file = {
    'file1': open('xxxx.jpg', 'rb')
}
res = requests.post(url, data=data, files=file)
print(res)

paramsをセットしても受け取り側でpost値としては受け取れないが、get値としてなら受け取ることが出来る。

params = {
    'key2': 'value'
}
res = requests.post(url, data=data, files=file, params=params)

data, files, paramsパラメータの順番の決まりはない。
以下のような順番でも正しく動作する。

res = requests.post(url, params=params, files=file, data=data)

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です