python请求在数组中发送文件显示ValueError:太多值无法解包

Atik Rahman |

这里有什么问题 ?

我有一个错误显示

ValueError:太多值无法解包

此代码过程是将所有可用图像放在一个文件夹中,然后将该图像位置放入一个数组中。然后创建另一个称为文件的数组,并添加具有特定格式的图像位置,并将POST请求发送到API

import requests
import logging
import os
import json

try:
    import http.client as http_client
except ImportError:
    # Python 2
    import httplib as http_client
http_client.HTTPConnection.debuglevel = 1

logging.basicConfig()
logging.getLogger().setLevel(logging.DEBUG)
requests_log = logging.getLogger("requests.packages.urllib3")
requests_log.setLevel(logging.DEBUG)
requests_log.propagate = True

url_and = "https://api.test.com/api/3.0/listings/"

android_token = '68as76df87s86df7asd76f87as6df78sfd'
headers = {
    'Authorization': "Token " + android_token,
    'platform': 'android'
}

data_android = {
    'mailing_details':'3',
    'abcoupay':'false',
    'price':'55.00',
    'description':'Test description',
    'title':'TEST drill machine and others.',
    'meetup':'false',
    'condition':'2',
    'mailing':'true',
    'collection_id':'24'
}

urls = []
for file in os.listdir(os.getcwd()+"/product_images"):
    if file.endswith((".jpg",".jpeg",".png",".JPG",".JPEG",".PNG")):
        x = os.getcwd()+"\\"+file
        urls.append(x)

files = []
x = 0
for file in urls:
    files.append("'photo_"+str(x)+"': ('image_"+str(x)+".jpg', open('"+file+"', 'rb'), 'image/jpeg')")
    x+=1

# files = {
#             'photo_0': ('image_0.jpg', open('E:/products files/Drill machine/1.jpg', 'rb'), 'image/jpeg'),
#             'photo_1': ('image_1.jpg', open('E:/products files/Drill machine/2.jpg','rb'), 'image/jpeg')        
#         }

response = requests.request("POST", url_and,data=data_android,files=files,headers=headers)
print(response.text.encode("utf-8"))

错误

Traceback (most recent call last):
  File "cookies.py", line 102, in <module>
    response = requests.request("POST", url_and,data=data_android,files=files,headers=headers)
  File "C:\python27\lib\site-packages\requests\api.py", line 60, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:\python27\lib\site-packages\requests\sessions.py", line 519, in request
    prep = self.prepare_request(req)
  File "C:\python27\lib\site-packages\requests\sessions.py", line 462, in prepare_request
    hooks=merge_hooks(request.hooks, self.hooks),
  File "C:\python27\lib\site-packages\requests\models.py", line 316, in prepare
    self.prepare_body(data, files, json)
  File "C:\python27\lib\site-packages\requests\models.py", line 504, in prepare_body
    (body, content_type) = self._encode_files(files, data)
  File "C:\python27\lib\site-packages\requests\models.py", line 141, in _encode_files
    for (k, v) in files:
ValueError: too many values to unpack
吹牛

files参数requests.request应为dict,其中键为文件名,值为文件内容或文件对象。因此,您应该将files变量构建为dict:

files = {'image_%s.jpg' % x: open(file, 'rb') for x, file in enumerate(urls)}

如果还需要内容类型,则可以使dict值3元组包含文件名,文件对象和内容类型:

files = {'image_%s.jpg' % x: ('image_%s.jpg' % x, open(file, 'rb'), 'image/jpeg') for x, file in enumerate(urls)}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python ValueError:太多值无法解包

python ValueError:太多值无法解包(预期...。)

OpenCV python:ValueError:太多值无法解包

OpenCV Python Numpy:ValueError:太多值无法解包(预期2)

ValueError:太多值无法解包-OpenCV Python HoughLines

Python-ValueError:太多值无法解包-为什么?

ValueError:太多值无法解包:python列表操作

Python ValueError:太多值无法用字典解包

Python ValueError:太多值无法在While循环中解包

Python DataFrame-ValueError:太多值无法解包(预期2)

Python tuple to dict - ValueError: 太多值无法解包

Python速记太多值无法解包错误

Python列表推导“太多值无法解包”

ValueError:太多值无法解包,读取文本文件时出错

错误:ValueError:太多值无法解包(预期3)

Django-ValueError:太多值无法解包(预期2)

带有nltk的FreqDist:ValueError:太多值无法解包

训练分类器时出现“太多值无法解包” ValueError

scikits.bvp_solver生成ValueError:太多值无法解包

定义OrderedDict时出错-ValueError:太多值无法解包

Pandas DataFrame apply()ValueError:太多值无法解包(预期2)

MapReduce:ValueError:太多值无法解包(预期2)

ValueError:太多值无法解包Tkinter列表框

Sklearn管道引发ValueError:太多值无法解包(预期2)

SQL炼金术:ValueError太多值无法解包?

如何修复valueError:太多值无法解包(预期3)

pygame:ValueError:太多值无法解包(预期2)

ValueError:太多值无法用Python中的元组列表解包(预期2)

Python语法错误:ValueError:太多值无法解包(预期2)