Tôi cần thực hiện cuộc gọi API để tải lên tệp cùng với chuỗi JSON có thông tin chi tiết về tệp.Yêu cầu Python: Gửi JSON và tệp theo yêu cầu duy nhất
Tôi đang cố gắng sử dụng các yêu cầu python lib để làm điều này:
import requests
info = {
'var1' : 'this',
'var2' : 'that',
}
data = json.dumps({
'token' : auth_token,
'info' : info,
})
headers = {'Content-type': 'multipart/form-data'}
files = {'document': open('file_name.pdf', 'rb')}
r = requests.post(url, files=files, data=data, headers=headers)
này ném các lỗi sau:
raise ValueError("Data must not be a string.")
ValueError: Data must not be a string
Nếu tôi loại bỏ các 'files' từ yêu cầu, nó hoạt động .
Nếu tôi xóa 'dữ liệu' khỏi yêu cầu, nó hoạt động.
Nếu tôi không mã hóa dữ liệu dưới dạng JSON thì nó hoạt động.
Vì lý do này, tôi cho rằng lỗi là thực hiện việc gửi dữ liệu JSON và các tệp trong cùng một yêu cầu.
Bất kỳ ý tưởng nào về cách làm việc này?
Có dường như là một lỗi đánh máy trong mã của bạn: 'var2' nên được theo sau bởi một' '', phải không? –
vâng, cố định ví dụ của tôi, cảm ơn! – oznu