Estou tentando iterar por meio de um objeto JSON para importar dados, ou seja, título e link. Não consigo chegar ao conteúdo que passou do :
.
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
}
]
Tentei usar um dicionário:
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 apenas imprime as informações antes :
. ( ignore a faixa de Justin Bieber :))
fonte
json_object
, nãojson_object[0]
, e depois obter itens individuais de cada dicionário.Eu acredito que você provavelmente quis dizer:
NB: você pode usar em
song.iteritems
vez desong.items
if no Python 2.fonte
for (attribute, value) in song.iteritems():
ou(var1, var2) = (1, 2)
ouvar1, var2 = 1, 2
.dict.iteritems()
produz(key, value)
pares (tuplas). Procure por “desempacotamento da tupla do python”.song.iteritems
parasong.items
.Esta questão já está aqui há muito tempo, mas eu queria contribuir com como geralmente faço a iteração por meio de um objeto JSON. No exemplo abaixo, mostrei uma string codificada que contém o JSON, mas a string JSON poderia facilmente ter vindo de um serviço da web ou arquivo.
fonte
jsonObject
é umdict
. No código acima, eu prefeririafor key, value in jsonObject.items():
.Depois de desserializar o JSON, você tem um objeto Python. Use os métodos de objeto regulares.
Neste caso, você tem uma lista feita de dicionários:
etc.
fonte
Eu resolveria esse problema mais assim
fonte
para iterar por meio de JSON, você pode usar isto:
fonte
Para Python 3, você precisa decodificar os dados que recebe do servidor da web. Por exemplo, eu decodifico os dados como utf8 e lido com eles:
Se você não decodificar, obterá erros de bytes vs string no Python 3.
fonte