Я, вероятно, могу решить это сам, если бы у меня было время для расследования. Я пробовал разные вещи, но я не могу заставить его работать! Я занимаюсь своим мастером в области маркетинга, и мы ожидаем, что сможем на самом Python закодировать набор данных (json) в организованный текстовый файл, который можно использовать для дальнейшего анализа.Разбор JSON с использованием try и except
У нас есть набор данных с большим количеством недостающих значений. То, что я хочу разобрать, это: artist, mbid (music brainz artist id), данные о событиях, название места, город.
Это (часть) сценарий я написал для этого:
for event in setlists:
eventdate = event.get(u'@eventDate')
venuename = event.get(u'venue').get(u'@name')
mbid = event.get(u'artist').get(u'@mbid')
artistname = event.get(u'artist').get(u'@name')
city = event.get(u'venue').get(u'city').get(u'@name')
f = open(parse_file, 'a')
f.write(artistname+'\t'+mbid+'\t'+eventdate+'\t'+venuename+'\t'+city+'\n')
f.close()
Этот скрипт работает как шарм, за исключением того, что он выходит из записей, для которых имеются пропущенные значения, например, нет города.
Я хочу, чтобы он сообщал об этом в текстовую строку и печатал «отсутствует» для информации, которая отсутствует.
Я не могу заставить его работать, и я не знаю, с чего начать. Я пытался что-то вроде этого:
f = open(parse_file, 'a')
try: f.write(artistname) except: continue try: f.write(mbid) except: continue...
f.close()
Каждая строка в анализируемом файле хотел бы, как это:
artistname mbid EVENTDATE venuename расположение
Я пытаюсь поставить все на разных линиях, но тогда проблема был выход по вертикали, а не по горизонтали для каждого события.
Не могли бы вы добавить образец файла JSON и желаемый результат? –
Вы должны поместить свою попытку: кроме: операторов в разных строках. Это не имеет никакого отношения к форматированию вывода файла. – Keozon
Я пробовал делать, что Кеозон. Попытайтесь получить .... кроме, продолжайте, а затем еще одну попытку и за исключением. А потом, когда я е = открытое (parse_file, 'а') \t \t f.write (EVENTDATE + '\ т' + город + '\ п') \t \t f.close() он все равно будет выводиться только комбинации, где оба переменные присутствуют ... – Luti