我正在为一个使用PyLyrics的项目制作歌词数据集。
我已经导入了dataset,安装了PyLyrics,现在尝试让Python为dataset中的所有行生成歌词,但它没有提供任何输入。
import pandas as pd
data = pd.read_csv(r'C:\Users\kk\Desktop\dba lyrics analysis\all_periods_joined_for_lyrics_1.csv', header=1)
df=pd.DataFrame(data, columns=['Position', 'Track Name','Artist','Streams','date','period'])
for index, row in df.iterrows():
try:
from PyLyrics import *
df.loc[index, 'Lyrics'] = PyLyrics.getLyrics(row['Artist'], row['Track Name'])
except:
pass当我到达print(df)时,输出是用我的头和'NaN‘填充的表,而不是任何输出。此外,歌词列也不会生成。
我该怎么办?
我是编程新手,但论文很快就要完成了,所以我非常感谢大家的帮助!
提前感谢!
发布于 2020-01-24 20:31:44
我可以想象,将PyLyrics导入到try-except块中会掩盖这样一个事实,即PyLyrics模块没有安装在您的计算机上,因此无法导入:
try:
from PyLyrics import *
except:
# If the import failed we can fix it here - but we just ignore it (pass)
pass相反,将from PyLyrics import *放在没有try-except块的文件开头,这样如果没有安装包,脚本就会立即失败。在这里看看如何安装这个包:https://pypi.org/project/PyLyrics/。
下面的代码非常适合我。
from PyLyrics import PyLyrics
from pprint import pprint
from pandas import read_csv
songs = read_csv('songs.csv', header=None, names=['Artist','Title'])
for index, row in songs.iterrows():
print('Getting lyrics for', row.Artist, row.Title)
try:
lyrics = PyLyrics.getLyrics(row.Artist, row.Title)
except:
lyrics = None
print('Failed to get lyrics for', row.Artist, row.Title)
songs.loc[index, 'Lyrics'] = lyrics
pprint(songs)
"""
Getting lyrics for ErrorUndefined DoesNotExist
Failed to get lyrics for ErrorUndefined DoesNotExist
Getting lyrics for Taylor Swift Blank Space
Getting lyrics for Bon Jovi It's My Life
Artist Title Lyrics
0 ErrorUndefined DoesNotExist NaN
1 Taylor Swift Blank Space Nice to meet you, where you been?\nI could sho...
2 Bon Jovi It's My Life This ain't a song for the broken-hearted\nNo s...
"""songs.csv
Artist,Title
ErrorUndefined,DoesNotExist
Taylor Swift,Blank Space
Bon Jovi,It's My Lifehttps://stackoverflow.com/questions/59894047
复制相似问题