abriendo una url con urllib en python 3

Estoy intentando abrir la URL de esta API desde la base de luz solar y devolver los datos de la página en json. Este es el código que he producido, menos el paréntesis alrededor de myapikey.

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

y estoy recibiendo este error

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

¿Qué estoy haciendo mal? He investigado en https://docs.python.org/3/library/urllib.request.html y todavía no hay progreso

from urllib.request import urlopen usar from urllib.request import urlopen , también le sugiero que use la instrucción with al abrir una conexión.

 from urllib.request import urlopen with urlopen("https://sunlightlabs.github.io/congress/legislators?api_key='(myapikey)") as conn: # dosomething 

En Python 3 puedes implementar eso de esta manera:

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

Preste atención: algunos IDE pueden import urllib (Spyder) directamente, mientras que otros necesitan import urllib.request (PyCharm).

Esto se debe a que a veces es necesario importar explícitamente las piezas que desea, por lo que el módulo no necesita cargar todo cuando solo quiere una pequeña parte de él.

Espero que esto ayude.

 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) 

urllib.request es un módulo mientras que urlopen es una función. Echa un vistazo a este enlace, puede ayudarte a aclarar tus dudas. https://docs.python.org/3.0/library/urllib.request.html