Получил следующий код в одном из моих скриптов:
#
# url is defined above.
#
jsonurl = urlopen(url)
#
# While trying to debug, I put this in:
#
print jsonurl
#
# Was hoping text would contain the actual json crap from the URL, but seems not...
#
text = json.loads(jsonurl)
print text
То, что я хочу сделать, это получить {{.....etc.....}}
то, что я вижу по URL, когда я загружаю его в Firefox, в мой скрипт, чтобы я мог разобрать значение из него. Я погуглил тонну, но не нашел хорошего ответа о том, как на самом деле получить {{...}}
материал из URL-адреса, заканчивающегося в .json
объект в скрипте Python.
json.loads
которое потребляет использование строки (именно поэтому.read()
требуется, используйтеjson.load(response)
вместо этого.urllib2
предпочтительным в python2?Я предполагаю, что вы действительно хотите получить данные из URL:
Или посмотрите декодер JSON в библиотеке запросов .
источник
Это получает словарь в формате JSON с веб-страницы с Python 2.X и Python 3.X:
Смотрите также: Прочитайте и напишите пример для JSON
источник
Я обнаружил, что это самый простой и эффективный способ получить JSON с веб-страницы при использовании Python 3:
источник
from urllib.request import urlopen
Все, что
urlopen()
делает вызов (в соответствии с документами ), возвращает объект, похожий на файл. Когда у вас есть это, вам нужно вызвать егоread()
метод, чтобы фактически передать данные JSON по сети.Что-то вроде:
источник
В Python 2 json.load () будет работать вместо json.loads ()
К сожалению, это не работает в Python 3. json.load - это просто оболочка вокруг json.loads, которая вызывает read () для файлового объекта. Для json.loads требуется строковый объект, а вывод urllib.urlopen (url) .read () является байтовым объектом. Поэтому нужно получить кодировку файла, чтобы он работал в Python 3.
В этом примере мы запрашиваем заголовки для кодировки и возвращаемся к utf-8, если мы не получаем его. Объект заголовков отличается между Python 2 и 3, поэтому это должно быть сделано разными способами. Использование запросов позволит избежать всего этого, но иногда вам нужно придерживаться стандартной библиотеки.
источник
Нет необходимости использовать дополнительную библиотеку для разбора json ...
json.loads()
возвращает словарь .Так что в вашем случае просто сделайте
text["someValueKey"]
источник
Поздний ответ, но для
python>=3.6
вас можно использовать:Установить
dload
с помощью:источник
вам нужно
import requests
и использовать из метода json ():Конечно, этот метод также работает:
источник
Вы можете использовать
json.dumps
:для загрузки json и записи его в файл полезен следующий код:
источник