Как избежать «ключевой ошибки» в цикле Python for? [дубликат]Python

Программы на Python
Ответить
Anonymous
 Как избежать «ключевой ошибки» в цикле Python for? [дубликат]

Сообщение Anonymous »

Я новичок в Python и пытаюсь выполнить несколько поисков в PubMed и сохранить количество результатов в файле CSV. Код, который у меня сейчас есть, не будет работать, если я не удалю цикл for. Я хотел бы, чтобы код выполнялся через столбец «Термины», указанный в файле CSV, но я не знаю, в каком месте разместить цикл for, и не знаю, как... Я думаю, установить переменную для запуска цикла. Вот что у меня вызывает ошибку ключа:

Код: Выделить всё

import requests
import time
import pandas as pd

def get_pubmed_results_count(search_terms, delay=1):
base_url = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi"
results = {}

for term in search_terms:
# Define parameters for the API request
params = {
"db": "pubmed",
"term": term,
"retmode": "json"
}

try:
# Make the request to the PubMed API
response = requests.get(base_url, params=params)
response.raise_for_status()

# Parse the response
data = response.json()
count = data['esearchresult']['count']
results[term] = count

except requests.exceptions.RequestException as e:
print(f"Error retrieving data for term '{term}': {e}")
results[term] = None

# Respectful delay between requests
time.sleep(delay)

return results

# Example usage

df_searchterms = pd.read_csv('search1.csv')
print(df_searchterms)

if __name__ == "__main__":
for index, row in df_searchterms.iterrows():
search_terms = (row['Term'])
result_counts = get_pubmed_results_count(search_terms)

for term, count in result_counts.items():
df_results = pd.DataFrame(result_counts.items(), columns=['term','count'])
print (df_results)
df_results.to_csv('TestRestults1.csv', index=False)
А вот как выглядит мой фрейм данных поисковых запросов:

Код: Выделить всё

 Term
0   APOE AND Alzheimer's
1  PSEN1 AND Alzheimer's
2  PSEN2 AND Alzheimer's
3    APP AND Alzheimer's
4    CLU AND Alzheimer's
Мой вопрос: как мне запустить это без ошибки ключа?

Подробнее здесь: https://stackoverflow.com/questions/787 ... n-for-loop
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»