Python-URL

Das urllib-Modul hat die Art und Weise des Zugriffs auf die Funktion request in Python 3 ge√§ndert. Dies bedeutet, dass, wenn Sie versuchen, auf die "urlopen‚" wie in Python 2 funktioniert, sto√üen Sie auf den "AttributeError: ‚Äòmodule‚Äô Objekt hat kein Attribut ‚Äòurlopen‚Äô‚" error.

In diesem Leitfaden erfahren Sie, was dieser Fehler bedeutet und warum er ausgelöst wird. Es fuhrt ein Beispiel fur diesen Fehler durch, damit Sie lernen, wie Sie ihn beheben können.

AttributeError: ‘module’ -Objekt hat kein Attribut ‘urlopen’

Die "urllib‚" module bietet eine Reihe von Funktionen im Zusammenhang mit dem √ñffnen von URLs und dem Lesen von Daten von Websites. Die Syntax fur die Verwendung dieser Bibliothek unterscheidet sich zwischen Python 2 und Python 3.

In Python 2 , "urlopen‚" ist Teil der "URL‚" Modul. Das bedeutet, dass Sie es mit urllib.urlopen in Ihren Code importieren k√∂nnen. In Python 3 ist "urlopen‚" ist Teil einer "Anfrage‚" Modul innerhalb der "URL" Methode:

  • Python 2: urllib -> urlopen
  • Python 3: urllib -> Anfrage -> urlopen

Die "Anfrage‚" -Modul ist, wo viele der Web-Request-Funktionen in der "URL‚" Paket gebundelt sind. AttributeErrors werden ausgel√∂st, wenn Sie versuchen, auf ein Attribut von einem Modul zuzugreifen, das dieses Attribut nicht enth√§lt. In diesem Fall "urlopen‚" ist nicht Teil der "URL‚" Modul.

Ein Beispielszenario

Erstellen Sie ein Programm, das Daten von einem Dienst namens JSONPlaceholder abruft. Dieser Dienst stellt Dummy-Daten bereit, die Sie fur Ihr Beispiel verwenden können.

Rufen Sie einen einzelnen Beitrag mit der ID #2 ab. Um zu beginnen, importieren Sie das URL-Modul:

Mit dieser Anweisung k√∂nnen Sie Funktionen aus der "urllib‚" Modul im Programm.

81 % der Teilnehmer gaben an, dass sie sich nach dem Besuch eines Bootcamps hinsichtlich ihrer Berufsaussichten im Tech-Bereich sicherer fuhlten. Lassen Sie sich noch heute in ein Bootcamp einweisen.

Der durchschnittliche Bootcamp-Absolvent verbrachte weniger als sechs Monate im Karriereubergang, vom Beginn eines Bootcamps bis zur Suche nach seinem ersten Job.

Stellen Sie als N√§chstes eine Anfrage mit ‚Äûurlopen‚". Dadurch k√∂nnen Sie die Daten von einem Endpunkt in der JSONPlaceholder-API abrufen:

Dieser Code liest Daten fur den Beitrag mit der ID #2 in der JSONPlaceholder-API.

Der Code druckt die als JSON-String formatierte Antwort unserer Anfrage mithilfe einer print-Anweisung an die Konsole. Fuhren Sie den Code aus und sehen Sie, was passiert:

Das Programm gibt einen Fehler zuruck .

Die Lösung

Sie verwenden die Python 2-Syntax, um auf die ‚Äûurlopen‚" Methode. ‚Äûurlopen‚" ist kein Attribut von "urllib‚" in Python 3. Sie verweisen auf "urlopen‚" als Attribut von "urllib‚" Daher kann das Programm nicht ordnungsgem√§√ü ausgefuhrt werden.

Um dieses Problem zu beheben, importieren Sie die "Anfrage‚" Modul aus der "urllib‚" Modul. Dieses Modul enth√§lt die "urlopen‚" Methode:

Weiter, Ändern Sie den Code so, dass Sie beim Abrufen von Daten aus der JSONPlaceholder-API auf das Modul urllib.request verweisen:

Dieser Code liest den Inhalt des API-Endpunkts, den wir aufrufen. Lassen Sie uns unseren Code ausfuhren:

Sie haben die erhaltene Antwort mit der Methode decode() entschlusselt. Tun Sie dies, damit Sie die von der Methode urlopen() zuruckgegebenen Werte als String lesen können.

Schlussfolgerung

Der "urlopen‚" Funktion ist kein Objekt von "urllib‚" in Python 3. Um auf diese Funktion zuzugreifen, importieren Sie "urllib.request‚" in Ihren Code und verweisen Sie auf die Funktion urllib.request.urlopen().

Jetzt haben Sie das Wissen, das Sie benötigen, um diesen Python-Fehler wie ein Profi zu beheben!

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method