Python for循环仅返回第一个元素

时间:2020-01-14 18:21:45

标签: python for-loop iteration pubmed

我正在尝试使用https://pypi.org/project/pymed/从发布的URL中提取发布的ID。

问题:尽管在整个for循环中都有适当的输入,但是我的“发布查询”显然只在第一次迭代时执行?请帮忙。

url_list = pd.Series of URLs, dtype='str'
ID_list = list(range(0, len(url_list)))

for i in url_list:
    spider = Pubmed("MyTool", my_email)
    url = url_list.iloc[i].to_string(index=False)
    print(url) #CORRECTLY ITERATES

    if re.search(pattern, url):

        lookup = spider.query(url) #Unique <class itertools.chain object>
        results = list(lookup) #Unique <'pymed.article.PubMedArticle' object>

        ID = results.pop().pubmed_id
        #OR
        ID = results[0].pubmed_id
        print(ID) #RETURNS ONLY THE FIRST ID

        ID_list[i] = ID

    else:
        ID_list[i] = None

    print("Extracted " + url + " with ID: " + ID)

我已经尝试在整个循环结束时将Spider和Lookup var设置为None,并在两者上都使用“ del VAR”。

什么也没有。无论出于何种原因,spider.query()方法仅从它被馈入的第一个URL中提取。请注意,我还尝试将Pubmed()蜘蛛放置在for循环之外,该循环可能应该到达的位置,但这是我试图做的透彻的尝试。

非常感谢您的帮助,对于造成此问题的任何问题或任何会给您造成痛苦和折磨的风格,我深表歉意。

0 个答案:

没有答案