Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.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 mechanize文件上载UnicodeDecode错误_Python_File Upload_Mechanize - Fatal编程技术网

python mechanize文件上载UnicodeDecode错误

python mechanize文件上载UnicodeDecode错误,python,file-upload,mechanize,Python,File Upload,Mechanize,所以我有一个小脚本,我想用它把一些PDF上传到我选择的引文网站(citeulike.org) 问题是它不起作用。它是这样做的: 注意:我可以正确地看到它在文件中读取(它确实存在)。还请注意,我在其他地方也这样做 尝试检查此项 为了澄清,消息是在httplib中根据方法、URL、头等构造的。如果其中任何一个是Unicode,则整个字符串将转换为Unicode(我认为这是正常的Python行为)。然后,如果您尝试附加一个UTF-8字符串,您将得到我在原始问题中描述的错误… 从外观上看,这是一个编码问

所以我有一个小脚本,我想用它把一些PDF上传到我选择的引文网站(citeulike.org)

问题是它不起作用。它是这样做的:

注意:我可以正确地看到它在文件中读取(它确实存在)。还请注意,我在其他地方也这样做

尝试检查此项

为了澄清,消息是在httplib中根据方法、URL、头等构造的。如果其中任何一个是Unicode,则整个字符串将转换为Unicode(我认为这是正常的Python行为)。然后,如果您尝试附加一个UTF-8字符串,您将得到我在原始问题中描述的错误…

从外观上看,这是一个编码问题,适当的头可以修复

您也可以查看此信息。

谢谢。确认@ton1c已解决问题
so want to upload /Users/willwade/Dropbox/Papers/price_promoting_643127.pdf  to  12589610
Traceback (most recent call last):
  File "citeuupload.py", line 167, in <module>
    cureader.parseUserBibTex()
  File "citeuupload.py", line 160, in parseUserBibTex
    self.uploadFileToCitation(b['citeulike-article-id'],self.localpapers+fileorfalse)
  File "citeuupload.py", line 138, in uploadFileToCitation
    resp = self.browser.submit()
  File "build/bdist.macosx-10.8-intel/egg/mechanize/_mechanize.py", line 541, in submit
  File "build/bdist.macosx-10.8-intel/egg/mechanize/_mechanize.py", line 203, in open
  File "build/bdist.macosx-10.8-intel/egg/mechanize/_mechanize.py", line 230, in _mech_open
  File "build/bdist.macosx-10.8-intel/egg/mechanize/_opener.py", line 193, in open
  File "build/bdist.macosx-10.8-intel/egg/mechanize/_urllib2_fork.py", line 344, in _open
  File "build/bdist.macosx-10.8-intel/egg/mechanize/_urllib2_fork.py", line 332, in _call_chain
  File "build/bdist.macosx-10.8-intel/egg/mechanize/_urllib2_fork.py", line 1142, in http_open
  File "build/bdist.macosx-10.8-intel/egg/mechanize/_urllib2_fork.py", line 1115, in do_open
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 955, in request
    self._send_request(method, url, body, headers)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 989, in _send_request
    self.endheaders(body)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 951, in endheaders
    self._send_output(message_body)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 809, in _send_output
    msg += message_body
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 544: ordinal not in range(128)
def uploadFileToCitation(self,artid,file):
    print 'so want to upload', file, ' to ', artid
    self.browser.open('http://www.citeulike.org/user/'+cUser+'/article/'+artid)
    self.browser.select_form(name="fileupload_frm")
    self.browser.form.add_file(open(file, 'rb'), 'application/pdf', file, name='file')
    try:
        resp = self.browser.submit()
        self.wait_for_api_limit()
    except mechanize.HTTPError, e:
        print 'error'
        print e.getcode()
        print resp.read()
        exit()
    self.browser = mechanize.Browser()
    self.browser.set_handle_robots(False)
    self.browser.addheaders = [
      ("User-agent", 'me@me.com citeusyncpy/1.0'),
    ]