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)
  • 相关阅读:
    Android测试工具 UIAutomator入门与介绍
    C#异步编程
    懒得找,存个笔记:easyui combogrid 下拉+关键字搜索
    mssql replace
    序列化类型为XX的对象时检测到循环引用
    shell脚本运行python命令
    python技巧
    边缘检测测评标准
    mybatis 手动生成可执行sql
    Linux如何扩容物理文件系统分区
  • 原文地址:https://www.cnblogs.com/arhatlohan/p/4249776.html
Copyright © 2011-2022 走看看