Estoy tratando de iterar a través de un objeto JSON para importar datos, es decir, título y enlace. Parece que no puedo acceder al contenido que está más allá del :
.
JSON:
[
{
"title": "Baby (Feat. Ludacris) - Justin Bieber",
"description": "Baby (Feat. Ludacris) by Justin Bieber on Grooveshark",
"link": "http://listen.grooveshark.com/s/Baby+Feat+Ludacris+/2Bqvdq",
"pubDate": "Wed, 28 Apr 2010 02:37:53 -0400",
"pubTime": 1272436673,
"TinyLink": "http://tinysong.com/d3wI",
"SongID": "24447862",
"SongName": "Baby (Feat. Ludacris)",
"ArtistID": "1118876",
"ArtistName": "Justin Bieber",
"AlbumID": "4104002",
"AlbumName": "My World (Part II);\nhttp://tinysong.com/gQsw",
"LongLink": "11578982",
"GroovesharkLink": "11578982",
"Link": "http://tinysong.com/d3wI"
},
{
"title": "Feel Good Inc - Gorillaz",
"description": "Feel Good Inc by Gorillaz on Grooveshark",
"link": "http://listen.grooveshark.com/s/Feel+Good+Inc/1UksmI",
"pubDate": "Wed, 28 Apr 2010 02:25:30 -0400",
"pubTime": 1272435930
}
]
Intenté usar un diccionario:
def getLastSong(user,limit):
base_url = 'http://gsuser.com/lastSong/'
user_url = base_url + str(user) + '/' + str(limit) + "/"
raw = urllib.urlopen(user_url)
json_raw= raw.readlines()
json_object = json.loads(json_raw[0])
#filtering and making it look good.
gsongs = []
print json_object
for song in json_object[0]:
print song
Este código solo imprime la información anterior :
. ( ignora la pista de Justin Bieber :))
fuente
json_object
, nojson_object[0]
, y luego obtener elementos individuales de cada dictado.Creo que probablemente quisiste decir:
NB: podría usar en
song.iteritems
lugar desong.items
if en Python 2.fuente
for (attribute, value) in song.iteritems():
, o(var1, var2) = (1, 2)
ovar1, var2 = 1, 2
.dict.iteritems()
produce(key, value)
pares (tuplas). Busque "desempaquetado de tuplas de Python".song.iteritems
asong.items
.Esta pregunta ha estado aquí durante mucho tiempo, pero quería contribuir a cómo suelo iterar a través de un objeto JSON. En el siguiente ejemplo, he mostrado una cadena codificada que contiene el JSON, pero la cadena JSON podría provenir fácilmente de un servicio web o un archivo.
fuente
jsonObject
es undict
. En el código anterior, preferiríafor key, value in jsonObject.items():
.Después de deserializar el JSON, tiene un objeto Python. Utilice los métodos de objetos habituales.
En este caso, tiene una lista de diccionarios:
etc.
fuente
Resolvería este problema más así
fuente
para iterar a través de JSON puede usar esto:
fuente
Para Python 3, debe decodificar los datos que obtiene del servidor web. Por ejemplo, decodifico los datos como utf8 y luego lo trato:
Si no decodifica, obtendrá bytes frente a errores de cadena en Python 3.
fuente