Obtive o seguinte código em um dos meus scripts:
#
# 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
O que eu quero fazer é obter as {{.....etc.....}}
coisas que vejo na URL quando a carrego no Firefox no meu script para que eu possa analisar um valor. Eu pesquisei muito no Google, mas não encontrei uma boa resposta sobre como obter as {{...}}
coisas de um URL que termina em .json
um objeto em um script Python.
json.loads
o que consome um uso string (que é por isso que.read()
é necessária, usejson.load(response)
em seu lugar.urllib2
preferível no Python2?Suponho que você realmente deseja obter dados do URL:
Ou, confira o decodificador JSON na biblioteca de solicitações .
fonte
Isso obtém um dicionário no formato JSON de uma página da Web com Python 2.X e Python 3.X:
Consulte também: Exemplo de leitura e gravação para JSON
fonte
Eu descobri que essa é a maneira mais fácil e eficiente de obter JSON de uma página da Web ao usar o Python 3:
fonte
from urllib.request import urlopen
Tudo o que a chamada
urlopen()
faz (de acordo com os documentos ) é retornar um objeto parecido com um arquivo. Depois de ter isso, é necessário chamar seuread()
método para realmente puxar os dados JSON pela rede.Algo como:
fonte
No Python 2, o json.load () funcionará em vez do json.loads ()
Infelizmente, isso não funciona no Python 3. O json.load é apenas um invólucro do json.loads que chama read () para um objeto semelhante a um arquivo. O json.loads requer um objeto de cadeia e a saída de urllib.urlopen (url) .read () é um objeto de bytes. Portanto, é necessário obter a codificação do arquivo para fazê-lo funcionar no Python 3.
Neste exemplo, consultamos os cabeçalhos para a codificação e voltamos ao utf-8 se não obtivermos um. O objeto headers é diferente entre Python 2 e 3, portanto, isso deve ser feito de maneiras diferentes. O uso de solicitações evitaria tudo isso, mas às vezes você precisa se ater à biblioteca padrão.
fonte
Não é necessário usar uma biblioteca extra para analisar o json ...
json.loads()
retorna um dicionário .Então, no seu caso, basta
text["someValueKey"]
fonte
Resposta tardia, mas para
python>=3.6
você poder usar:Instale
dload
com:fonte
você precisa
import requests
e usa do método json ():Obviamente, este método também funciona:
fonte
você pode usar
json.dumps
:para carregar o json e escrevê-lo no arquivo, o seguinte código é útil:
fonte