2017-02-08 1 views
0

После решения вопроса: "Wikipedia module python: jumping “wikipedia.exceptions.PageError”"AttributeError: «список» объект не имеет атрибута «стрип» после модуля обновления википедии

с этим кодом:

import csv 
import wikipedia 

wikipedia.set_lang('it') 

with open('D:\\GIS\\Dati\\Vinca\\specie_vinca.csv', 'rt', encoding="utf8") as f: 
    reader = csv.reader(f) 
    for row in reader: 
     try: 
      wikipage = wikipedia.page(row) 
      print (wikipage.title) 
      print (wikipage.summary) 
      print ("Page URL: %s" % wikipage.url) 
      print ("Nr. of images on page: %d" % len(wikipage.images)) 
      print (" - Main Image: %s" % wikipage.images[0]) 
      print ("") 
     except wikipedia.exceptions.PageError: 
     #if a "PageError" was raised, ignore it and continue to next link 
      continue 

У меня есть обновление модуля википедии к 1.4.5 для python 3.6. Теперь код не работает для: «Объект AttributeError:« list »не имеет атрибута« strip »« Я не понимаю, почему раньше он работал, а теперь нет. Как это можно решить?

CVS файл содержит имя вида:

... 
Acmaeops septentrionis 
Aconitum anthora 
Aconitum lamarckii 
Aconitum lycoctonum 
Aconitum napellus 
Aconitum paniculatum 
Aconitum vulparia 
Acorus calamus 
Acrida ungarica 
Acritus minutus 
Acritus nigricornis 
... 
+0

Но вы кормите 'wikipedia.page' ** список **, а не один элемент. –

+0

Какой формат CSV? – Ryan

+0

Это файл с 1 столбцом имен –

ответ

1

Если вы используете для чтения CSV, row является список элементов. Действительно, для каждого столбца есть элемент. Теперь вы передаете весь список методу wikipedia.page(..)?

Вы можете решить ее, например, извлекая первый элемент строки и извлечь эту страницу:

wikipage = wikipedia.page(row[0])

Таким образом, вы используете [0] для получить первый столбец из этой строки.

+0

Perfect @Willem Van Onsem, он работает !!! Большое спасибо –

Смежные вопросы