Открытие url с помощью urllib в python 3

Я пытаюсь открыть URL этого API из sunlight foundation и вернуть данные со страницы в json. вот код, который я создал, за вычетом скобок вокруг myapikey.

import urllib.request.urlopen
import json

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

и получаю эту ошибку

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

что я делаю не так? Я изучил https://docs.python.org/3/library/urllib.request.html и все еще не достиг прогресса.

Решение

Необходимо использовать from urllib.request import urlopen, также советую использовать оператор with при открытии соединения.

from urllib.request import urlopen

with urlopen("https://sunlightlabs.github.io/congress/legislators?api_key='(myapikey)") as conn:
    # dosomething
Комментарии (2)

В Python 3 это можно реализовать следующим образом:

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

Обратите внимание: Некоторые IDE могут импортировать urllib (Spyder) напрямую, а некоторым необходимо импортировать urllib.request (PyCharm).

Это связано с тем, что иногда необходимо явно импортировать нужные части, чтобы модуль не загружал все подряд, когда вам нужна только небольшая часть.

Надеюсь, это поможет.

Комментарии (0)

urllib.request - это модуль, а urlopen - функция. Посмотрите эту ссылку, она может помочь вам развеять ваши сомнения. https://docs.python.org/3.0/library/urllib.request.html

Комментарии (1)