python - python根据请求发送图像url
问题描述
usertoken = requests.request("GET", "http://127.0.0.1:8000/en/get-user-by-email?email={}".format("soubhagyakumar666@gmail.com"))
usertoken = usertoken.json()["user"]["token"]
url = "http://127.0.0.1:8000/en/update-project-thumbnail"
payload = {
"project_id": 6885
}
files=[
('project_image',('{}'.format("_0005_MainCam_42.png"),
'https://d3lwp4d5yh6xdg.cloudfront.net/static/artwork_project/6886/_0005_MainCam_42.png','rb', 'image/jpeg')),
]
headers = {
'Authorization': 'Token '+ usertoken
}
response = requests.request("PUT", url, headers=headers, data=payload, files=files)
print(response.status_code, ":status_code")
在这里,我通过请求发送图像。但是,我得到了错误。我必须通过 url 发送图片有可能吗?
File "/Users/soubhagyapradhan/Desktop/upwork/africa/backend/env/lib/python3.8/site-packages/requests/models.py", line 317, in prepare
self.prepare_body(data, files, json)
File "/Users/soubhagyapradhan/Desktop/upwork/africa/backend/env/lib/python3.8/site-packages/requests/models.py", line 505, in prepare_body
(body, content_type) = self._encode_files(files, data)
File "/Users/soubhagyapradhan/Desktop/upwork/africa/backend/env/lib/python3.8/site-packages/requests/models.py", line 165, in _encode_files
rf = RequestField(name=k, data=fdata, filename=fn, headers=fh)
File "/Users/soubhagyapradhan/Desktop/upwork/africa/backend/env/lib/python3.8/site-packages/urllib3/fields.py", line 155, in __init__
self.headers = dict(headers)
ValueError: dictionary update sequence element #0 has length 1; 2 is required
ERROR 2021-05-19 11:47:06,121 basehttp 16077 123145380831232 "GET /en/signup H
解决方案
问题出在下面的代码上:
response = requests.request("PUT", url, headers=headers, data=payload, files=files)
文件(变量值)需要是字典数据结构,如图所示:
correct_file={'file':("project_image ( {0})".format("_0005_MainCam_42.png"),
open('out.png'
, 'rb'),'image/png')} # replace out.png with your file path
所以请求将如下所示:
response = requests.request("PUT", url, headers=headers, data=payload, files=correct_file)
推荐阅读
- javascript - 如何根据输入数字 .clone() 元素
- html - 不同文本类型的 a.link 后面的形状/元素?
- spring - OneToMany 关系的连接列为空
- python - python 3中的空金字塔
- java - Spring Data mongdb 2.1.0 中的 PropertyReferenceException
- javascript - 通过 jquery 发送 ajax 请求不起作用
- angular - 无法检查角度 4 中对象中不存在的字段
- drupal - 可以在客户端创建新论坛 - Drupal 8
- javascript - 简单数组映射问题 - JavaScript
- r - R foreach 循环在 HPC 环境中耗尽内存