Closed TimG233 closed 1 year ago
经过测试,Playlist
这个class (\object\music163.py
) 里的playlist_data
不一定会有以下这些 (根据不同的playlist)
tags
(包括tag_str
)subscribedCount
createTime
music_list
这些如果playlist_data
里没有就会扔出KeyError
所以感觉做个defensive coding就好
比如说 self.tags = playlist_data['tags'] if 'tags' in playlist_data else None
因为搜索出来的数据不完全,所以分成了不同的类,可以使用 id 再次请求获取完整数据
应该返回的是 ShortPlaylist 对象,可以先改一下库代码,晚点修一下,没注意
也可以先用 musicapi._search
修完了 更新至 v0.1.4.5 可以正常使用
from pycloudmusic import Music163Api
import asyncio
async def main():
musicapi = Music163Api()
for playlist in (await musicapi.search_playlist(key="古风", page=0, limit=5))[1]:
print(playlist.name, playlist.id)
print("=" * 50)
# 搜索数据没有 tag 获取完整歌单再获取 tag
for splaylist in (await musicapi.search_playlist(key="古风", page=0, limit=5))[1]:
playlist = await musicapi.playlist(splaylist.id)
print(playlist.name, playlist.id, playlist.tags_str, playlist.tags)
asyncio.run(main())
我尝试去搜索一个playlist通过关键词,但是他不能像
musicapi.search_music
一样去操作 (变成list),否则会有报错。目前这个不确定是我的操作有问题还是程序有Bug 代码:报错: