Извлечение информации из файла JSON, Python - PullRequest
0 голосов
/ 15 мая 2018

Я пытаюсь извлечь информацию из файла json, который я сбросил. Я использовал модуль mido для получения необходимой мне информации, и единственный способ получить эти функции - это сбросить его как json. Но после некоторого поиска я попытался, но мне не удалось извлечь и сохранить информацию в массиве python * (пустой массив) *. Ниже вы видите пример кода. Я почти уверен, что двойной [[ в начале файла создает все эти проблемы.

if __name__ == '__main__':
filename = 'G:\\ΣΧΟΛΗ p12127\\Πτυχιακη\\MAPS Dataset\\MAPS_AkPnBcht_1\\AkPnBcht\\ISOL\\CH\\MAPS_ISOL_CH0.1_F_AkPnBcht.mid'

midi_file = mdfile(filename)

for i, track in enumerate(midi_file.tracks):
    print('Track: ', i,'\nNumber of messages: ',  track)
    for message in track:
        print(message)
def midifile_to_dict(mid):
    tracks = []
    for track in mid.tracks:
        tracks.append([vars(msg).copy() for msg in track])

return {
    'ticks_per_beat': mid.ticks_per_beat,
    'tracks': tracks,
}


mid = mido.MidiFile('G:\\ΣΧΟΛΗ p12127\\Πτυχιακη\\MAPSDataset\\MAPS_AkPnBcht_1\\AkPnBcht\\ISOL\\CH\\MAPS_ISOL_CH0.1_F_AkPnBcht.mid')

dataj = json.dumps(midifile_to_dict(mid), indent=2)
data = json.loads(dataj)

Выход:

  {
  "ticks_per_beat": 32767,
  "tracks": [[
  {
  "type": "set_tempo",
  "tempo": 439440,
  "time": 0
 },
 {
"type": "end_of_track",
    "time": 0
}
  ]]
}

Итак, чтобы закрыть это, как я могу извлечь эту информацию? Является ли json хорошим подходом? И если так, как я мог на самом деле извлечь эту информацию? Или способ пойти внутри [[]] . Большое спасибо за потраченное время, W7 p3.6 +.

...