首页 > 解决方案 > 在另一个函数中调用函数时出错

问题描述

我有功能newspaper3k提取给定网址的摘要。给定为:-

def article_summary(row):
    url = row
    article = Article(url)
    article.download()
    article.parse()
    article.nlp()
    text = article.summary
    return text

我有熊猫数据框,其列名为url

url
https://www.xyssss.com/dddd
https://www.sbkaksbk.com/shshshs
https://www.ascbackkkc.com/asbbs
............
............

还有另一个函数main_code()运行得非常好,我在里面使用article_summary。我想将这两个函数都添加article_summarymain_code()一个函数final_code中。

这是我的代码:第一个功能为:-

def article_summary(row):
url = row
article = Article(url)
article.download()
article.parse()
article.nlp()
text = article.summary
return text

这是第二个功能

def main_code():

article_data['article']=article_data['url'].apply(article_summary)
return article_data['articles']

当我完成时:

def final_code():
    article_summary()
    main_code()

final_code()没有给出任何输出,它显示为TypeError: article_summary() missing 1 required positional argument: 'row'

标签: python-3.xpandasuser-defined-functionspython-newspaper

解决方案


这些是您使用的实际网址吗?如果是这样,他们似乎导致了ArticleException,我用一些维基百科页面测试了你的代码并且它有效。

在那张纸条上,您是否只使用一个df?如果没有,最好将其作为变量传递给函数。

------------------------------------评论后编辑------------ -------------------------------------------------- -------- 我认为 Python 函数的教程会很有帮助。也就是说,关于您的具体问题,以您描述的方式调用函数将使其运行两次,在这种情况下不需要。正如我之前所说,您应该将 df 作为参数传递给函数,这里有一个关于全局变量和局部变量以及如何使用它们的教程。

您遇到的错误是因为您应该将参数“行”传递给函数 article_summary(请参阅函数教程)。


推荐阅读