Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用请求(Python)发送带有FieldStorage的POST请求_Python_Http - Fatal编程技术网

使用请求(Python)发送带有FieldStorage的POST请求

使用请求(Python)发送带有FieldStorage的POST请求,python,http,Python,Http,基本上,我正在做的是向我的python服务器提交一个文件,然后我需要python服务器将同一个文件转发给另一个API第三方OCR。我正在尝试使用请求库,但它似乎不喜欢它。它告诉我,目前,这个错误: AttributeError:“set”对象没有属性“read” 下面是基本上运行它的代码。任何帮助或要点都将不胜感激 注意:self.request.post['file']是一个fieldstorage数据类型 import requests files = {'file': {self.req

基本上,我正在做的是向我的python服务器提交一个文件,然后我需要python服务器将同一个文件转发给另一个API第三方OCR。我正在尝试使用请求库,但它似乎不喜欢它。它告诉我,目前,这个错误:

AttributeError:“set”对象没有属性“read”

下面是基本上运行它的代码。任何帮助或要点都将不胜感激

注意:self.request.post['file']是一个fieldstorage数据类型

import requests

files = {'file': {self.request.POST['fileName'], self.request.POST['file'].file, self.request.POST['type']}}
r = requests.post(url, files=files)
编辑:这是完整的回溯

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/webapp2.py", line 1535, in __call__
    rv = self.handle_exception(request, response, e)
  File "/usr/local/lib/python2.7/dist-packages/webapp2.py", line 1529, in __call__
    rv = self.router.dispatch(request, response)
  File "/usr/local/lib/python2.7/dist-packages/webapp2.py", line 1278, in default_dispatcher
    return route.handler_adapter(request, response)
  File "/usr/local/lib/python2.7/dist-packages/webapp2.py", line 1102, in __call__
    return handler.dispatch()
  File "/usr/local/lib/python2.7/dist-packages/webapp2.py", line 572, in dispatch
    return self.handle_exception(e, self.app.debug)
  File "/usr/local/lib/python2.7/dist-packages/webapp2.py", line 570, in dispatch
    return method(*args, **kwargs)
  File "main.py", line 91, in post
    resp = self.save_ocr()
  File "main.py", line 143, in save_ocr
    r = requests.post(url, files=files)
  File "/usr/lib/python2.7/dist-packages/requests/api.py", line 88, in post
    return request('post', url, data=data, **kwargs)
  File "/usr/lib/python2.7/dist-packages/requests/api.py", line 44, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 421, in request
    prep = self.prepare_request(req)
  File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 359, in prepare_request
    hooks=merge_hooks(request.hooks, self.hooks),
  File "/usr/lib/python2.7/dist-packages/requests/models.py", line 290, in prepare
    self.prepare_body(data, files)
  File "/usr/lib/python2.7/dist-packages/requests/models.py", line 427, in prepare_body
    (body, content_type) = self._encode_files(files, data)
  File "/usr/lib/python2.7/dist-packages/requests/models.py", line 140, in _encode_files
    rf = RequestField(name=k, data=fp.read(),
AttributeError: 'set' object has no attribute 'read'

您希望将实际的文件对象传递给请求,而不是同时包含文件名等的包装器:self.requests.POST['file'].file.@Cameron当我将其更改为仅使用文件时,它仍然有相同的错误。我现在在我的问题中添加了全部错误。