Извлечение json form api с базовой аутентификацией python

#python #json #basic-authentication

#python #json #базовая аутентификация

Вопрос:

Здравствуйте, я создаю скрипт на python для geektool для мониторинга моих входящих сообщений с мобильных устройств. Мне удалось создать это на java, но я никогда не использовал python.

 api url: https://mobilevikings.com/api/2.0/basic/usage.json
password: xxxx
username: yyyy
  

у меня уже есть следующий нерабочий код, скопированный из Интернета

 import urllib2, base64
request = urllib2.Request(url)
base64string = base64.encodestring('%s:%s' % (username, password)).replace('n', '')
request.add_header("Authorization", "Basic %s" % base64string)
result = urllib2.urlopen(request)
  

Как мне получить файл json из api?

Комментарии:

1. Для urllib2 кода должно просто работать. Вы уже пробовали (гораздо более простую в использовании) requests библиотеку ? Это отдельная установка, но тогда вы можете просто использовать resp = requests.get(url, auth=(username, password)) , затем result = resp.json() .

2. Дополнительным преимуществом использования requests является то, что существуют дополнительные библиотеки, подобные rauth , которые упрощают использование OAuth. Я вижу mobilevikings.com предоставляет вам возможность использовать любой из них, но рекомендует использовать OAuth вместо базовой аутентификации.

3. Почему вы говорите, что код нерабочий? В чем проблема с этим? Вызывает ли это исключение, отображает ли сообщение об ошибке, ничего не делает?

4. Вы пытались искать https://mobilevikings.com/api/ информацию о оболочке Python? Возможно, они создали какие-то полезные инструменты на Python. Кажется, вы этого не сделали, потому что вы увидите python OAuth client на этой странице.