urllib TypeError: memoryview: dict object does not have the buffer interface
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)