5

我正在使用 Python 的mutagen模块来获取我拥有的各种 MP3 文件的艺术家。

这是给出错误的代码:

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

该代码适用于我的大多数 MP3 文件,但有少数几个会不断出现以下错误:

键错误:'TPE1'

由于那个错误,我看不到艺术家。请注意,这些 MP3 文件都有一个艺术家,它们都没有特殊字符或类似的东西。

为什么会这样?我该如何解决?

谢谢

4

3 回答 3

4

最有可能的是,您正在寻找一个在 mutagen id3 字典中不存在的键。像对普通字典一样做一个简单的检查:

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

我已经尝试过和不确保参数是 Unicode 并且它在两种情况下都适用Python 2.7.3

于 2013-11-16T11:46:04.397 回答
1

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

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

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

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

于 2017-03-14T13:47:15.437 回答
0

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

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

于 2013-07-21T21:53:02.800 回答