突变:TypeError:需要类似字节的对象,而不是'str'

时间:2019-12-29 10:02:49

标签: python python-3.x id3 mutagen

我该怎么办?我收到此错误。我想为FLAC添加一些标签。 我搜索了,但没有找到任何东西。请帮助我。

    Traceback (most recent call last):
  File "indir.py", line 50, in <module>
    audio.save()
  File "/usr/local/lib/python3.6/dist-packages/mutagen/_util.py", line 169, in wrapper
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/mutagen/_util.py", line 140, in wrapper
    return func(self, h, *args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/mutagen/flac.py", line 847, in save
    self._save(filething, self.metadata_blocks, deleteid3, padding)
  File "/usr/local/lib/python3.6/dist-packages/mutagen/flac.py", line 864, in _save
    metadata_blocks, available, content_size, padding)
  File "/usr/local/lib/python3.6/dist-packages/mutagen/flac.py", line 154, in _writeblocks
    data += cls._writeblock(block)
  File "/usr/local/lib/python3.6/dist-packages/mutagen/flac.py", line 126, in _writeblock
    datum = block.write()
  File "/usr/local/lib/python3.6/dist-packages/mutagen/flac.py", line 620, in write
    f.write(self.data)
TypeError: a bytes-like object is required, not 'str'

我的代码:

audio = FLAC("music.flac")
audio['artist'] = sarki.artist.name
audio['title'] = sarki.name
pic = Picture()
pic.type = id3.PictureType.COVER_FRONT
pic.width = 640
pic.height = 640
pic.mime = 'image/jpeg'
pic.data = "music.jpg"

audio.add_picture(pic)
audio.save()

1 个答案:

答案 0 :(得分:0)

我相信错误在这里:

hasAccess() {
  return new Promise(resolve => {
    this.loginService.hasCookie(this.cookieService.get('login')).subscribe(hasCookie => {
      if (hasCookie === 1) {
        return new Promise(() => {
          this.loginService.getCookie().subscribe(cookieFromServer => {
            if (cookieFromServer === this.cookieService.get('login')) {
              console.log(this.location.path());
              if (this.location.path() === '/login') {
                return resolve(false);
              }
              return resolve(true);
            } else {
              return resolve(false);
            }
          });
        });
      }
      if (this.location.path() === '/login') {
        return resolve(true);
      }
      return resolve(false);
    });
  });
}

您试图将图片的图像数据设置为字符串。我猜您想将图像数据设置为文件pic.data = "music.jpg" 的内容。如果是这样,请尝试用以下两个替换此行:

music.jpg

它紧跟Array.prototype.find()