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
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.
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
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)