문제

I'm using the mutagen module for Python to get the artist of various MP3 files I have.

Here's the code giving the error:

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

The code is working for most of my MP3 files, but there are a select few that continually give the following error:

KeyError: 'TPE1'

And because of that error, I can't see the artist. Note that these MP3 files all have an artist, and none of them have special characters or anything like that.

Why is this happening? And how can I fix it?

Thanks

도움이 되었습니까?

해결책

Most likely, you're looking for a key which doesn't exist in mutagens id3 dictionary. Do a simple check like you would do for a regular dictionary:

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

I've tried with and without ensuring that the argument is Unicode and it works in both cases with Python 2.7.3

다른 팁

This is probably because you removed its value manually via the file properties/details.
That's what happened with me (with Python 3.4).

You could redefine the key by following:

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

If that was the reason it should work again.

This error normally happens if you are using a version of Python less than 3.0. You need to ensure that the argument to the mutagen audio function is a Unicode string. So use

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top