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)
  • 相关阅读:
    实用的设计模式【一】---类设计法则
    vimium 使用心得
    记一次给部门做分享的心得
    centos7安装docker和docker compose【转】
    docker 部署 jenkins
    centos删除docker0虚拟网卡
    CentOS7查看和关闭防火墙
    .Net Core Autofac实现依赖注入
    【转】Docker基础
    【转】使用Docker+Jenkins自动构建部署
  • 原文地址:https://www.cnblogs.com/arhatlohan/p/4249776.html
Copyright © 2011-2022 走看看