webentwicklung-frage-antwort-db.com.de

öffne eine url mit urllib in python 3

ich versuche, die URL dieser API von der Sunlight-Foundation zu öffnen und die Daten von der Seite in Json zurückzugeben. Dies ist der Code, den ich erstellt habe, ohne die Klammern um myapikey.

import urllib.request.urlopen
import json

urllib.request.urlopen("https://sunlightlabs.github.io/congress/legislators?api_key='(myapikey)")

und ich bekomme diesen Fehler

Traceback (most recent call last):
  File "<input>", line 1, in <module>
ImportError: No module named request.urlopen

was mache ich falsch? Ich habe in https://docs.python.org/3/library/urllib.request.html recherchiert und trotzdem keinen Fortschritt gemacht

Sie müssen from urllib.request import urlopen verwenden. Außerdem wird empfohlen, die with-Anweisung beim Öffnen einer Verbindung zu verwenden.

from urllib.request import urlopen

with urlopen("https://sunlightlabs.github.io/congress/legislators?api_key='(myapikey)") as conn:
    # dosomething
19
styvane

In Python 3 können Sie das folgendermaßen implementieren:

import urllib.request
u = urllib.request.urlopen("xxxx")#The url you want to open

Achtung: Einige IDE können import urllib (Spyder) direkt, während andere import urllib.request (PyCharm) müssen.

Das liegt daran, dass Sie manchmal die gewünschten Teile explizit importieren müssen, sodass das Modul nicht alles laden muss, wenn Sie nur einen kleinen Teil davon benötigen.

Hoffe das wird helfen.

6
Lyn

urllib.request ist ein Modul, während urlopen eine Funktion ist. Schauen Sie sich diesen Link an, er kann Ihnen dabei helfen, Ihre Zweifel auszuräumen. https://docs.python.org/3.0/library/urllib.request.html

1
Fazil Ahmed
from urllib.request import urlopen
from bs4 import BeautifulSoup

wiki = "https://en.wikipedia.org/wiki/List_of_state_and_union_territory_capitals_in_India"

page = urlopen(wiki)
soup =  BeautifulSoup(page, "html.parser" ).encode('UTF-8')

print (soup)
1
Arnav Singh