Итак, я пытаюсь получить некоторые данные из NCBI. Код, который я ранее написал, был переписан гораздо более опытным программистом, но он не возвращал результаты в нужном мне формате, поэтому я сделал некоторые изменения / дополнения:
for plant, disease in plant_disease_list:
search_query = generate_search_query(plant, disease)
handle1 = Entrez.esearch(db="pmc", term=search_query, retmax="10")
record1 = Entrez.read(handle1)
pubmed_ids = record1.get("IdList")
if pubmed_id in pubmed_ids=="":
print("Plant: {} Disease: {} PubmedID: DOI:".format(plant, disease))
else:
for pubmed_id in pubmed_ids:
handle2 = Entrez.esummary(db="pmc", id=pubmed_id)
records = Entrez.read(handle2)
for record in records:
doi = record.get("DOI")
print("Plant: {} Disease: {} PubmedID: {} DOI: http://doi.org/{}".format(plant, disease, pubmed_id, doi))
, где plant_disease_list - это ранее определенный список. Единственная проблема, с этим кодом я получаю ошибку:
Traceback (most recent call last):
File "scraperscript_python.py", line 28, in <module>
if pubmed_id in pubmed_ids=="":
NameError: name 'pubmed_id' is not defined
Если я удаляю if / else l oop и go обратно к обычному вложенному для l oop, я Я не получаю синтаксическую ошибку, но код не печатает нужные мне данные, т.е. он печатает данные только для тех пар "болезнь растений", для которых был найден PMID. Есть идеи, что я могу делать не так?