Работа с JSON, вывод определенных данных
Дан файл json - listaudio.json. В нем находятся примерно такие данные:
{'id': 12345, 'owner_id': 67890, 'url': '', 'artist': 'ExampleArtist', 'title': 'ExampleTitle', 'duration': 320}, {'id': 45624, 'owner_id': 67890, 'url': '', 'artist': 'ExampleArtist2', 'title': 'ExampleTitle2', 'duration': 243}
нужно вывести только данные artist и title, т.е. вывод должен выглядеть так:
ExampleArtist - ExampleTitle
ExampleArtist2 - ExampleTitle2
Подскажите, как это сделать, используя python
Ответы (2 шт):
Всё очень просто:
import json
with open('listaudio.json') as f:
json_object = json.load(f)
for elem in json_object:
print('{0} - {1}'.format(elem['artist'], elem['title']))
Сперва мы открываем файл для чтения open('listaudio.json'), далее получаем json объект из него через встроенный модуль json.load(f).
for elem in json_object:
print('{0} - {1}'.format(elem['artist'], elem['title']))
Через этот цикл, мы проходимся по каждому элементу данного json массива и выводим его артиста, а также название.
Только не забудьте, что в json используются двойные кавычки, так что в файле должны быть не одинарные, а двойные!
# pip install jsonpath-ng (если не установлен)
from jsonpath_ng import parse
json_data = [
{"id": 12345, "owner_id": 67890, "url": '', "artist": "ExampleArtist", "title": "ExampleTitle", "duration": 320},
{"id": 45624, "owner_id": 67890, "url": '', "artist": "ExampleArtist2", "title": "ExampleTitle2", "duration": 243}
]
titles = [m.value for m in parse('$..title').find(json_data)]
artists = [m.value for m in parse('$..artist').find(json_data)]
for artist, title in zip(artists, titles):
print(artist, title, sep=' - ')