Dictionary 属性错误:';dict';对象没有属性';解码';检查图像url时

Dictionary 属性错误:';dict';对象没有属性';解码';检查图像url时,dictionary,decode,attributeerror,imageurl,Dictionary,Decode,Attributeerror,Imageurl,我正在尝试检查一个360000个图像URL的列表,并计算有效图像的数量。如果范围是1000项,下面的迭代可以正常工作,但是如果我将其提高到5000项或更多,它将显示错误“AttributeError:'dict'对象没有属性'decode'” 有人能帮我修复错误和/或修改代码,一次迭代所有360000个URL吗?多谢各位 # Here's my codes cnt_1 = 0 for post in list_post[0:5000]: try: url = pos

我正在尝试检查一个360000个图像URL的列表,并计算有效图像的数量。如果范围是1000项,下面的迭代可以正常工作,但是如果我将其提高到5000项或更多,它将显示错误“AttributeError:'dict'对象没有属性'decode'”

有人能帮我修复错误和/或修改代码,一次迭代所有360000个URL吗?多谢各位


# Here's my codes

cnt_1 = 0

for post in list_post[0:5000]:
    try:
        url = post['photo_url']
        parse_object = urlparse(url)
        conn = http.client.HTTPConnection(parse_object.netloc)
        conn.request('HEAD', parse_object.path)
        response = conn.getresponse()
        conn.close()
        if (response.status == 200):
            cnt_1 += 1
    except AttributeError:
        continue

#下面是我收到的错误
---------------------------------------------------------------------------
GAIRROR回溯(最近一次呼叫最后一次)
在里面
6 parse_object=urlparse(url)
7 conn=http.client.HTTPConnection(parse_object.netloc)
---->8连接请求('HEAD',解析对象路径)
9 response=conn.getresponse()
10号控制室关闭()
/请求中的opt/anaconda3/lib/python3.7/http/client.py(self、method、url、body、headers、encode_chunked)
1250 encode_chunked=False):
1251“向服务器发送完整的请求。”“”
->1252 self.\u send\u请求(方法、url、正文、标题、编码\u分块)
1253
1254 def_send_请求(self、method、url、body、header、encode_chunked):
/opt/anaconda3/lib/python3.7/http/client.py in_send_请求(self、method、url、body、headers、encode_chunked)
1296#iso-8859-1的默认字符集。
1297 body=_编码(body,‘body’)
->1298 self.endheaders(body,encode_chunked=encode_chunked)
1299
1300 def getresponse(自我):
/endheaders中的opt/anaconda3/lib/python3.7/http/client.py(self、message\u body、encode\u chunked)
1245其他:
1246升起CannotSendHeader()
->1247 self.\u send\u输出(消息体,encode\u chunked=encode\u chunked)
1248
1249 def请求(self、方法、url、body=None、headers={}、*,
/opt/anaconda3/lib/python3.7/http/client.py in_send_输出(self、message_body、encode_chunked)
1024 msg=b“\r\n”。加入(自。\u缓冲区)
1025 del self.\u缓冲区[:]
->1026自我发送(msg)
1027
1028如果消息体不是无:
/发送中的opt/anaconda3/lib/python3.7/http/client.py(self,data)
964如果self.sock为无:
965如果self.auto_打开:
-->966 self.connect()
967其他:
968升起未连接()
/connect(self)中的opt/anaconda3/lib/python3.7/http/client.py
936“连接到\uuu init\uuuu中指定的主机和端口”
937 self.sock=self.\u创建\u连接(
-->938(self.host、self.port)、self.timeout、self.source\u地址)
939 self.sock.setsockopt(socket.IPPROTO_TCP,socket.TCP_NODELAY,1)
940
/创建连接(地址、超时、源地址)中的opt/anaconda3/lib/python3.7/socket.py
705主机,端口=地址
706错误=无
-->707对于getaddrinfo(主机、端口、0、SOCK_流)中的res:
708 af,socktype,proto,canonname,sa=res
709袜子=无
/getaddrinfo中的opt/anaconda3/lib/python3.7/socket.py(主机、端口、系列、类型、协议、标志)
750#和套接字类型值以枚举常量。
751地址列表=[]
-->752对于_socket.getaddrinfo(主机、端口、系列、类型、协议、标志)中的res:
753 af,socktype,原型,canonname,sa=res
754 addrlist.append(_intenum_转换器(af,AddressFamily),
# The below is the error I received
---------------------------------------------------------------------------
gaierror                                  Traceback (most recent call last)
<ipython-input-670-065df3328ecc> in <module>
      6         parse_object = urlparse(url)
      7         conn = http.client.HTTPConnection(parse_object.netloc)
----> 8         conn.request('HEAD', parse_object.path)
      9         response = conn.getresponse()
     10         conn.close()

/opt/anaconda3/lib/python3.7/http/client.py in request(self, method, url, body, headers, encode_chunked)
   1250                 encode_chunked=False):
   1251         """Send a complete request to the server."""
-> 1252         self._send_request(method, url, body, headers, encode_chunked)
   1253 
   1254     def _send_request(self, method, url, body, headers, encode_chunked):

/opt/anaconda3/lib/python3.7/http/client.py in _send_request(self, method, url, body, headers, encode_chunked)
   1296             # default charset of iso-8859-1.
   1297             body = _encode(body, 'body')
-> 1298         self.endheaders(body, encode_chunked=encode_chunked)
   1299 
   1300     def getresponse(self):

/opt/anaconda3/lib/python3.7/http/client.py in endheaders(self, message_body, encode_chunked)
   1245         else:
   1246             raise CannotSendHeader()
-> 1247         self._send_output(message_body, encode_chunked=encode_chunked)
   1248 
   1249     def request(self, method, url, body=None, headers={}, *,

/opt/anaconda3/lib/python3.7/http/client.py in _send_output(self, message_body, encode_chunked)
   1024         msg = b"\r\n".join(self._buffer)
   1025         del self._buffer[:]
-> 1026         self.send(msg)
   1027 
   1028         if message_body is not None:

/opt/anaconda3/lib/python3.7/http/client.py in send(self, data)
    964         if self.sock is None:
    965             if self.auto_open:
--> 966                 self.connect()
    967             else:
    968                 raise NotConnected()

/opt/anaconda3/lib/python3.7/http/client.py in connect(self)
    936         """Connect to the host and port specified in __init__."""
    937         self.sock = self._create_connection(
--> 938             (self.host,self.port), self.timeout, self.source_address)
    939         self.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
    940 

/opt/anaconda3/lib/python3.7/socket.py in create_connection(address, timeout, source_address)
    705     host, port = address
    706     err = None
--> 707     for res in getaddrinfo(host, port, 0, SOCK_STREAM):
    708         af, socktype, proto, canonname, sa = res
    709         sock = None

/opt/anaconda3/lib/python3.7/socket.py in getaddrinfo(host, port, family, type, proto, flags)
    750     # and socket type values to enum constants.
    751     addrlist = []
--> 752     for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
    753         af, socktype, proto, canonname, sa = res
    754         addrlist.append((_intenum_converter(af, AddressFamily),