2016-03-20 8 views
1

Ich versuche, Details zu bestimmten Papieren von Google Scholar mit einem wissenschaftlichen Modul in Python2.7 zu erhalten. Ich möchte Details von 1000 Papieren sammeln und habe unten erwähnten Code geschrieben.StopIteration während Suchabfrage mithilfe eines wissenschaftlichen Moduls in Python

seq = range(0,1,len(ResearchPaperNames)) 
for i in seq: 
    pub = (next(scholarly.search_pubs_query(ResearchPaperNames[i])) 
    print i 
    # And further processing to extract data from pub, like author, citation, url 

Es gibt mir Fehler nach 10 bis 12 Iteration

Traceback (most recent call last): 
    File "C:\Users\Sony\Downloads\Google Scholar Data Extraction.py", line 25, in <module> 
    pub = (next(scholarly.search_pubs_query(ResearchPaperNames[i]) 
StopIteration 

ist ich durch mehrere Antworten auf Stackoverflow verfügbar gegangen sind, aber ich konnte es nicht reparieren.

Bitte helfen Sie mir StopIteration Fehler

+0

Ihre Klammern in dieser Zeile sind nicht ausgeglichen, wie funktioniert dieser Code überhaupt? – Selcuk

Antwort

2

next einen optionalen Standardwert als zweiten Parameter ...

seq = range(0,1,len(ResearchPaperNames)) 
for i in seq: 
    pub = next(scholarly.search_pubs_query(ResearchPaperNames[i]),None) 
    print i 

wird das Problem stoppen Ich denke, ... irgendwie ... im Grunde zu beheben keine Ergebnisse für die gegebene Forschungsarbeit dort waren, oft einfach innerhalb der Schleife Druck kann auch als allgemeine Faustregel iterieren 0..len (Array) aufschlussreich sein, um seine Elemente zuzugreifen, ist so etwas wie ein Anti-Muster

for paperName in ResearchPaperNames: 
    pub = next(scholarly.search_pubs_query(paperName),None) 
    if pub is None: 
     print "Error %s not found!"%paperName 
    else: 
     #process the publication 
+0

Danke, Joran. Ich habe deinen Code ausprobiert. Ich denke, es ist das Problem der Python-Abfrage Suche bei Google scholar. Im Alltag funktioniert es für 80-90 Iteration, nach dem Ausbrechen. –

Verwandte Themen