Python для l oop возвращает только первый элемент - PullRequest
0 голосов
/ 14 января 2020

Я пытаюсь извлечь опубликованные идентификаторы из опубликованных URL-адресов, используя https://pypi.org/project/pymed/.

Проблема: несмотря на правильные входные данные для всего моего для l oop, моего "опубликованного запроса "видимо выполняется только на первой итерации? Пожалуйста, помогите.

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)

Я пробовал установить для паука и поиска переменные на None в конце всего l oop, а также с помощью "del VAR" на обоих из них.

Ничего не дает. По какой-то причине метод spider.query () получает только первый URL-адрес, на который он подается. Обратите внимание, что я также пытался поместить паука Pubmed () вне для l oop, где, вероятно, он должен go, но я старался быть тщательным.

Большое спасибо за помощь, и Я прошу прощения за любые проблемы, воспроизводящие это, или с любой стилистикой c, которая причиняет вам боль и страдание.

...