什么是“TPE1”KeyError?

时间:2013-07-21 21:38:11

标签: python mp3 id3 mutagen

我正在使用Python的mutagen模块来获取我所拥有的各种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 个答案:

答案 0 :(得分:3)

最有可能的是,你正在寻找mutagens id3字典中不存在的密钥。像对常规字典那样做一个简单的检查:

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

我已经尝试过,有没有确保参数是Unicode,并且它在Python 2.7.3

的两种情况下都有效

答案 1 :(得分:0)

如果您使用的Python版本低于3.0,则通常会发生此错误。您需要确保mutagen音频函数的参数是Unicode字符串。所以使用

audio = EasyID3(C:\ Users \ Owner \ Music \ Music \BlueÖysterCult\BlueÖysterCult\ Cities on Flame) 打印音频[U“艺术家”]

答案 2 :(得分:0)

这可能是因为您通过文件属性/详细信息手动删除了其值 这就是我发生的事情(使用Python 3.4)。

您可以通过以下方式重新定义密钥:

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

如果这是它应该再次起作用的原因。