zoukankan      html  css  js  c++  java
  • 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 FilesPython33liburllib
    equest.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 FilesPython33liburllib
    equest.py", line 156, in urlopen
        return opener.open(url, data, timeout)
      File "C:Program FilesPython33liburllib
    equest.py", line 467, in open
        req = meth(req)
      File "C:Program FilesPython33liburllib
    equest.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)
  • 相关阅读:
    Element学习
    top level element is not completed
    IntelliJ IDEA 使用心得与常用快捷键
    MVC下的DAO接口类和SERVICE接口类区别?
    Emmet初探2
    Servlet和Android网络交互基础(3)
    A-Frame WebVR开发新手教程
    重温java中的String,StringBuffer,StringBuilder类
    Android 常见面试题
    <html>
  • 原文地址:https://www.cnblogs.com/arhatlohan/p/4249776.html
Copyright © 2011-2022 走看看