J'essaye de parcourir un objet JSON pour importer des données, c'est-à-dire le titre et le lien. Je n'arrive pas à accéder au contenu qui dépasse le :
.
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
}
]
J'ai essayé d'utiliser un dictionnaire:
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
Ce code imprime uniquement les informations avant :
. ( ignorez la piste de Justin Bieber :))
la source
json_object
, nonjson_object[0]
, puis obtenir des éléments individuels de chaque dict.Je crois que vous vouliez probablement dire:
NB: Vous pouvez utiliser à la
song.iteritems
place desong.items
if dans Python 2.la source
for (attribute, value) in song.iteritems():
, ou(var1, var2) = (1, 2)
ouvar1, var2 = 1, 2
.dict.iteritems()
produit des(key, value)
paires (tuples). Recherchez «python tuple unpacking».song.iteritems
àsong.items
.Cette question est ici depuis longtemps, mais je voulais contribuer à la façon dont j'itère habituellement à travers un objet JSON. Dans l'exemple ci-dessous, j'ai montré une chaîne codée en dur contenant le JSON, mais la chaîne JSON pourrait tout aussi bien provenir d'un service Web ou d'un fichier.
la source
jsonObject
est undict
. Dans le code ci-dessus, je préféreraisfor key, value in jsonObject.items():
.Après avoir désérialisé le JSON, vous avez un objet python. Utilisez les méthodes d'objet régulières.
Dans ce cas, vous avez une liste de dictionnaires:
etc.
la source
Je résoudrais ce problème plus comme ça
la source
pour itérer via JSON, vous pouvez utiliser ceci:
la source
Pour Python 3, vous devez décoder les données que vous récupérez du serveur Web. Par exemple, je décode les données en utf8 puis je les gère:
Si vous ne décodez pas, vous obtiendrez des erreurs d'octets contre des erreurs de chaîne dans Python 3.
la source