Как вы можете улучшить вывод json, извлеченный из веб-сайта? - PullRequest
1 голос
/ 03 февраля 2020

Я использую сценарий python для извлечения этого json вывода: https://api.deezer.com/playlist/1050179021/tracks

Моя проблема в том, что я извлек ['data'] с этими строками, Я хочу выбрать только элемент 'name' в 'artist':

url = f'https://api.deezer.com/playlist/1050179021/tracks'
user_response = requests.get(url)
n = user_response.json()['data']

Какие есть способы сделать это, если они есть? С удовольствием отвечу на любые вопросы, чтобы уточнить любые сомнения.

Ответы [ 2 ]

0 голосов
/ 03 февраля 2020

вы можете использовать список понимания:

[e['artist']['name'] for e in n]

вывод:

['Testament',
 'Parkway Drive',
 'Avenged Sevenfold',
 'Heaven Shall Burn',
 'Bury Tomorrow',
 'Hollywood Undead',
 'allusinlove',
 'Sepultura',
 'Suicide Silence',
 'Lordi',
 'Vader',
 'Five Finger Death Punch',
 'Code Orange',
 'Russian Circles',
 'Breaking Benjamin',
 'In This Moment',
 'Apocalyptica',
 'Ozzy Osbourne',
 'Higher Power',
 'Body Count',
 'Intronaut',
 'Kvelertak',
 'Demons & Wizards',
 'Annihilator',
 'Antagonist A.D.']
0 голосов
/ 03 февраля 2020

Я не знаю, если при указании исполнителя всегда будет доступно имя, если нет:

[element['artist']['name'] for element in n if 'artist' in element and 'name' in element['artist']]

в противном случае вы можете использовать:

[element['artist']['name'] for element in n if 'artist' in element]

Этот фильтр список, поэтому окончательный список будет содержать только художников. Если вам нужен тот же список, но значение None, когда не указан исполнитель:

[element['artist']['name'] if 'artist' in element and 'name' in element['artist'] else None for element in n ]
...