Obtuve el siguiente código en uno de mis 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
Lo que quiero hacer es obtener {{.....etc.....}}
lo que veo en la URL cuando lo cargo en Firefox en mi script para poder analizar un valor. Busqué en Google una tonelada pero no encontré una buena respuesta sobre cómo obtener realmente las {{...}}
cosas de una URL que termina en .json
un objeto en un script de Python.
json.loads
que consume una cadena de uso (por eso.read()
se requiere, utilicejson.load(response)
en su lugar.urllib2
preferible en Python2?Supongo que realmente quieres obtener datos de la URL:
O consulte el decodificador JSON en la biblioteca de solicitudes .
fuente
Esto obtiene un diccionario en formato JSON de una página web con Python 2.X y Python 3.X:
Ver también: Ejemplo de lectura y escritura para JSON
fuente
He encontrado que esta es la forma más fácil y eficiente de obtener JSON desde una página web cuando se usa Python 3:
fuente
from urllib.request import urlopen
Todo lo que hace la llamada
urlopen()
(según los documentos ) es devolver un objeto similar a un archivo. Una vez que tenga eso, debe llamar a suread()
método para extraer los datos JSON a través de la red.Algo como:
fuente
En Python 2, json.load () funcionará en lugar de json.loads ()
Desafortunadamente, eso no funciona en Python 3. json.load es solo un contenedor alrededor de json.loads que llama a read () para un objeto similar a un archivo. json.loads requiere un objeto de cadena y la salida de urllib.urlopen (url) .read () es un objeto de bytes. Entonces uno tiene que obtener la codificación del archivo para que funcione en Python 3.
En este ejemplo, consultamos los encabezados para la codificación y volvemos a utf-8 si no obtenemos uno. El objeto de encabezado es diferente entre Python 2 y 3, por lo que debe hacerse de diferentes maneras. El uso de solicitudes evitaría todo esto, pero a veces debe atenerse a la biblioteca estándar.
fuente
No es necesario usar una biblioteca adicional para analizar el json ...
json.loads()
devuelve un diccionario .Entonces, en tu caso, solo hazlo
text["someValueKey"]
fuente
Respuesta tardía, pero para
python>=3.6
que pueda usar:Instalar
dload
con:fuente
necesita
import requests
y utiliza el método json ():Por supuesto, este método también funciona:
fuente
puedes usar
json.dumps
:para cargar json y escribirlo en el archivo, el siguiente código es útil:
fuente