Ich versuche, ein JSON-Objekt zu durchlaufen, um Daten zu importieren, dh Titel und Link. Ich kann anscheinend nicht zu dem Inhalt gelangen, der hinter dem liegt :
.
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
}
]
Ich habe versucht, ein Wörterbuch zu verwenden:
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
Dieser Code druckt nur die vorherigen Informationen :
. ( ignoriere den Justin Bieber Track :))
quelle
json_object
, nichtjson_object[0]
, und dann bekommen einzelne Elemente aus den einzelnen dict.Ich glaube, Sie meinten wahrscheinlich:
NB: Sie können
song.iteritems
anstelle vonsong.items
if in Python 2 verwenden.quelle
for (attribute, value) in song.iteritems():
oder(var1, var2) = (1, 2)
odervar1, var2 = 1, 2
.dict.iteritems()
erzeugt(key, value)
Paare (Tupel). Suchen Sie nach "Python Tuple Unpacking".song.iteritems
zusong.items
.Diese Frage ist schon lange hier draußen, aber ich wollte dazu beitragen, wie ich normalerweise durch ein JSON-Objekt iteriere. Im folgenden Beispiel habe ich eine fest codierte Zeichenfolge gezeigt, die den JSON enthält, aber die JSON-Zeichenfolge könnte genauso gut von einem Webdienst oder einer Datei stammen.
quelle
jsonObject
ist eindict
. Im obigen Code würde ich es vorziehenfor key, value in jsonObject.items():
.Nach dem Deserialisieren des JSON haben Sie ein Python-Objekt. Verwenden Sie die regulären Objektmethoden.
In diesem Fall haben Sie eine Liste mit Wörterbüchern:
etc.
quelle
Ich würde dieses Problem eher so lösen
quelle
Für Python 3 müssen Sie die Daten dekodieren, die Sie vom Webserver zurückerhalten. Zum Beispiel dekodiere ich die Daten als utf8 und beschäftige mich dann damit:
Wenn Sie nicht dekodieren, werden in Python 3 Bytes und Zeichenfolgenfehler angezeigt.
quelle
Zum Durchlaufen von JSON können Sie Folgendes verwenden:
quelle