我正在使用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文件都有一个艺术家,并且没有一个具有特殊字符或类似的东西。
为什么会这样?我该如何解决?
由于
答案 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' = ""
如果这是它应该再次起作用的原因。