Hallo zusammen
Ich frage das Wetter von Openweathermap ab. Wenn ich nun keine Internetverbindung habe, möchte ich, dass das Programm mir dies mitteilt. Das funktioniert ja mit try: und except:
Nun finde ich den Fehler in meiner Fehlermeldung nicht, den ich hinter except schreiben kann. Kann mir da Jemand helfen?
Es sind zwer drei Fehler auf einmal, aber eigentlich ist es nur die Internetverbindung die fehlt?
Die Fehlermeldung sieht folgendermassen aus:
>>> %Run Wetter.py
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 159, in _new_conn
(self._dns_host, self.port), self.timeout, **extra_kw)
File "/usr/lib/python3/dist-packages/urllib3/util/connection.py", line 57, in create_connection
for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
File "/usr/lib/python3.7/socket.py", line 748, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -3] Temporary failure in name resolution
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 600, in urlopen
chunked=chunked)
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 354, in _make_request
conn.request(method, url, **httplib_request_kw)
File "/usr/lib/python3.7/http/client.py", line 1244, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/usr/lib/python3.7/http/client.py", line 1290, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/usr/lib/python3.7/http/client.py", line 1239, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/lib/python3.7/http/client.py", line 1026, in _send_output
self.send(msg)
File "/usr/lib/python3.7/http/client.py", line 966, in send
self.connect()
File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 181, in connect
conn = self._new_conn()
File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 168, in _new_conn
self, "Failed to establish a new connection: %s" % e)
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x74ecc890>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/requests/adapters.py", line 449, in send
timeout=timeout
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 638, in urlopen
_stacktrace=sys.exc_info()[2])
File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 398, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='api.openweathermap.org', port=80): Max retries exceeded with url: /data/2.5/forecast?q=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x74ecc890>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/pi/Projekte/Bildschrimausgaben/Wetter_auf_GUI/Wetter.py", line 12, in <module>
class Ort:
File "/home/pi/Projekte/Bildschrimausgaben/Wetter_auf_GUI/Wetter.py", line 19, in Ort
Response = requests.get ("http://api.openweathermap.org/data/2.5/forecast?q=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
File "/usr/lib/python3/dist-packages/requests/api.py", line 75, in get
return request('get', url, params=params, **kwargs)
File "/usr/lib/python3/dist-packages/requests/api.py", line 60, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 533, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 646, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python3/dist-packages/requests/adapters.py", line 516, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='api.openweathermap.org', port=80): Max retries exceeded with url: /data/2.5/forecast?q=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x74ecc890>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution'))
>>>
Alles anzeigen
Das ist der Teil des Codes, bei dem ich die Abfrage mache:
try:
if ort=="XXXXXXXXX":
Response = requests.get ("http://api.openweathermap.org/data/2.5/forecast?q=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
elif ort=="XXXXXXX":
Response = requests.get ("http://api.openweathermap.org/data/2.5/forecast?q=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
WetterDaten=Response.json()
except ConnectionError:
print("kein Internet")
kann mir da jemand helfen?
Liebe Grüsse
Bern