Я пытаюсь перебрать объект JSON для импорта данных, то есть заголовка и ссылки. Кажется, я не могу добраться до контента, который находится за пределами :
.
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
}
]
Я пробовал использовать словарь:
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
Этот код только печатает информацию раньше :
. ( игнорируйте трек Джастина Бибера :))
источник
json_object
, notjson_object[0]
, а затем получить отдельные элементы из каждого dict.Я полагаю, вы, вероятно, имели в виду:
NB: вы можете использовать
song.iteritems
вместоsong.items
if в Python 2.источник
for (attribute, value) in song.iteritems():
, или(var1, var2) = (1, 2)
илиvar1, var2 = 1, 2
.dict.iteritems()
производит(key, value)
пары (кортежи). Найдите «распаковка кортежей python».song.iteritems
наsong.items
.Этот вопрос задавался здесь давно, но я хотел рассказать, как я обычно перебираю объект JSON. В приведенном ниже примере я показал жестко запрограммированную строку, содержащую JSON, но строка JSON также легко могла быть получена из веб-службы или файла.
источник
jsonObject
это аdict
. В приведенном выше коде я бы предпочелfor key, value in jsonObject.items():
.После десериализации JSON у вас есть объект python. Используйте обычные методы объекта.
В этом случае у вас есть список словарей:
и т.п.
источник
Я бы решил эту проблему примерно так
источник
для итерации через JSON вы можете использовать это:
источник
Для Python 3 вам нужно декодировать данные, которые вы получаете с веб-сервера. Например, я декодирую данные как utf8, а затем обрабатываю их:
Если вы не декодируете, вы получите ошибки байтов и строк в Python 3.
источник