p697 / cloudmusic

网易云爬虫解决方案
http://cloudmusic.cool/
MIT License
102 stars 30 forks source link

经常性TypeError: 'Music' object is not iterable报错 #19

Open if-OFF opened 1 year ago

if-OFF commented 1 year ago

session.py

            elif clas == "playlist" :
            playlist = self.api.get_playlist(dict(ID = ids[0], method = "linux"))["playlist"]["tracks"]
            ids = [ml["id"] for ml in playlist]
            musicList = self.request("song", ids)
            musicListc = []
            for ID in ids:
                for music in musicList:                    #<--------- Here
                    if music.id == str(ID):
                        musicListc.append(music)
                        musicList.remove(music)
                        continue
            return musicListc

经常会报错

代码如下:

import cloudmusic
playlist = cloudmusic.getPlaylist(7847348054)

错误信息如下

C:/Users/if-OF/AppData/Local/Microsoft/WindowsApps/python3.11.exe "d:/Visual Code/netease_download/test.py"
Traceback (most recent call last):
  File "d:\Visual Code\netease_download\test.py", line 2, in <module>
    playlist = cloudmusic.getPlaylist(7847348054)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\if-OF\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\cloudmusic\cloudmusic.py", line 11, in getPlaylist
    return session.request("playlist", para)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\if-OF\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\cloudmusic\sessions.py", line 53, in request
    for music in musicList:
TypeError: 'Music' object is not iterable
if-OFF commented 1 year ago

这报错有时候发生有时候又不发生,比较玄学,我python技术很烂,也排查不出来原因,只能来给大佬交issue😓