Что такое "ошибка TPE1"?

Я использую модуль мутагена для Python, чтобы получить исполнителя различных файлов MP3, которые у меня есть.

Вот код, дающий ошибку:

audio = EasyID3(C:\Users\Owner\Music\Music\Blue Öyster Cult\Blue Öyster Cult\Cities on Flame)
print audio["artist"]

Код работает для большинства моих файлов MP3, но есть некоторые, которые постоянно выдают следующую ошибку:

KeyError: 'TPE1'

И из-за этой ошибки я не вижу художника. Обратите внимание, что все эти MP3-файлы имеют исполнителя, и ни один из них не имеет специальных символов или чего-то подобного.

Почему это происходит? И как я могу это исправить?

Спасибо

3 ответа

Решение

Скорее всего, вы ищете ключ, которого нет в словаре мутагенов id3. Сделайте простую проверку, как для обычного словаря:

if 'artist' in audio:
  print audio['artist']

Я пытался с и без гарантии, что аргумент является Unicode, и он работает в обоих случаях с Python 2.7.3

Вероятно, это связано с тем, что вы удалили его значение вручную через свойства / детали файла.
Вот что случилось со мной (с Python 3.4).

Вы можете переопределить ключ следующим образом:

if not 'keyname' in Dic:
     'keyname' = ""

Если это было причиной, это должно сработать снова.

Эта ошибка обычно происходит, если вы используете версию Python менее 3.0. Вы должны убедиться, что аргумент функции mutagen audio является строкой Unicode. Так что используйте

audio = EasyID3(C:\Users\ Владелец \ Музыка \ Музыка \Blue Öyster Cult\Blue Öyster Cult\Cities on Flame) печатать аудио [U"artist"]

Другие вопросы по тегам