2017-05-20 8 views
0

でdictionnaryの一覧を表示します私はこのコードでESPNからのデータをスクレイピングしています:はkivy

import requests 
from bs4 import BeautifulSoup 

url = 'http://www.espn.com/nba/team/schedule/_/name/bos' 

r = requests.get(url) 
soup = BeautifulSoup(r.text) 

listes = soup.find_all('ul', class_='game-schedule') 

resultats = [] 
i = 0 
for liste in listes : 

    if not i % 2 : 
     resultat = {} 

    for item in liste.find_all('li') : 
     if item.text : 
      if 'class' in item.attrs : 
       cle = str(item.attrs['class'][-1]) 
       if cle in ('win', 'loss') : 
        cle = 'resultat' 
       resultat[cle] = item.text 

    if i % 2 and 'score' in resultat.keys() : 
     resultats.append(resultat) 
    i += 1 

print(resultats) 

それは辞書のリストにセルティックスの最後の試合の結果を出力します。問題は、私はKivyでそれを表示したいということですが、私は試みることによってそれで成功することはできません。

from kivy.uix.listview import ListView 
from kivy.base import runTouchApp 


class MainView(ListView): 
    def __init__(self, **kwargs): 
     super(MainView, self).__init__(
      resultats) 

if __name__ == '__main__': 
    runTouchApp(MainView()) 

それは私に、このエラーを示しています

TypeError: __init__() takes 1 positional argument but 2 were given 

答えて

0
from kivy.uix.listview import ListView  
from kivy.base import runTouchApp 

class MainView(ListView): 
    def __init__(self, **kwargs): 
     super(MainView, self).__init__(item_strings=resultats) 

if __name__ == '__main__': 
    runTouchApp(MainView()) 

あなたが上記試すことができますスニペット、これが役立つことを願って

+0

途中です! ValueError:Label.textはstrだけを受け取ります –

+0

あなたは 'resultats'リストを確認して、期待通りのものかどうかを確認してください。 あなたはあなたの答えを持って願っています、それは正しい答えとしてそれを受け入れてください – pramod

+0

私は期待どおりに何を意味するのですか? –