首页 > Web开发 > 详细

urllib TypeError: memoryview: dict object does not have the buffer interface

时间:2015-01-26 11:49:29      阅读:520      评论:0      收藏:0      [点我收藏+]
import urllib.request
url = ‘site‘
headers = {‘Authorization‘ : ‘Basic emVkMHg6WWJyYm5mMDA=‘}
req = urllib.request.Request(url, headers)
response = urllib.request.urlopen(req).getcode()

出现错误:

Traceback (most recent call last):
  File "C:\Program Files\Python33\lib\urllib\request.py", line 1186, in do_request_
    mv = memoryview(data)
TypeError: memoryview: dict object does not have the buffer interface

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:/Users/zed/Desktop/sddf.py", line 6, in <module>
    response = urllib.request.urlopen(req).getcode()
  File "C:\Program Files\Python33\lib\urllib\request.py", line 156, in urlopen
    return opener.open(url, data, timeout)
  File "C:\Program Files\Python33\lib\urllib\request.py", line 467, in open
    req = meth(req)
  File "C:\Program Files\Python33\lib\urllib\request.py", line 1191, in do_request_
    data))
ValueError: Content-Length should be specified for iterable data of type <class dict> {Authorization: Basic emVkMHg6WWJyyM5mMDA=}

解决办法:

先看Requset定义:

class Request:
    def __init__(self, url, data=None, headers={},
                 origin_req_host=None, unverifiable=False,
                 method=None):

所以,应该改为

req = urllib.request.Request(url, headers = headers)

 

urllib TypeError: memoryview: dict object does not have the buffer interface

原文:http://www.cnblogs.com/arhatlohan/p/4249776.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!