Dictionary 属性错误:';dict';对象没有属性';解码';检查图像url时
我正在尝试检查一个360000个图像URL的列表,并计算有效图像的数量。如果范围是1000项,下面的迭代可以正常工作,但是如果我将其提高到5000项或更多,它将显示错误“AttributeError:'dict'对象没有属性'decode'” 有人能帮我修复错误和/或修改代码,一次迭代所有360000个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
# 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),