2017-03-02 12 views
0
import re, time, _thread 
import urllib.request 
from bs4 import BeautifulSoup 


def get_data(n): 
    global s,r 
    html=urllib.request.urlopen('http://www.fmkorea.com/index.php?mid=best&listStyle=webzine&page='+str(n)) 
    soup=BeautifulSoup(html,'lxml') 
    l=soup.findAll('h3', {'class':'title'}) 

    for i in l: 
     for j in re.split(r'''\)|\(|\'|\"|\?|\]|\[|,|\.|\ |\:''',i.text[:i.text.rfind('[')].strip()): 
      s[j.strip()] = s.get(j.strip(),0) + 1 
      r=r+1 

    s={} 
    r=0 

    for _ in range(1,2037): 
      _thread.start_new_thread(get_data, (_,)) 
      time.sleep(0.05) 

     while r!=2036: 
      time.sleep(3) 

    with open('res','w') as f: 
     s=sorted(s.items(),key=lambda x: x[1],reverse=True) 
     for i in s: 
      f.writelines(str(i[0]) + " : " + str(i[1])+"\n") 

AttributeError       Traceback (most recent call last) 
<ipython-input-24-3e6cc449e797> in <module>() 
    35 # 
    36 with open('res','w') as f: 
---> 37  s=sorted(s.items(),key=lambda x: x[1],reverse=True) 
    38  for i in s: 
    39   f.writelines(str(i[0]) + " : " + str(i[1])+"\n") 

AttributeError: 'list' object has no attribute 'items' 

を持っていない私は上記のコードでこのエラーを取得し、それを修正することができないように保ちます。 AttributeErrorがどのように持ち上げられるのを防ぐには?はAttributeError:「タプル」オブジェクトが属性の項目「

+1

にそれを使用するカントの辞書のためにあるのですか?私はsがリストであり、配列/タプルではないと仮定します。エラーが示唆しています。 – zoubida13

+0

はdictです...... – kimchiman

+0

投稿したコードにはIndentationErrorが含まれています。あなたは本当に何が ''何かを表示しないので、エラーは検証できません。質問をコピーして貼り付けることができるように[編集]してください(例外も見られます)。エラーを生成するために必要なコードのみが含まれている必要があります(ファイルを完全に削除することができます)。 [mcve]を見てください。質問を編集する際には、必ず質問を書いてください。 – MSeifert

答えて

0

アイテムは、Sの内容は何ですかリスト

>>> d = {1:'a'} 
>>> d.items() 
dict_items([(1, 'a')]) 

>>> l = [1,2] 
>>> l.items() 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: 'list' object has no attribute 'items' 
+0

はdictです。なぜこのエラーが出るのか分かりません。 – kimchiman