2017-09-02 29 views
0

リストのリストにデータを解析する際に問題が発生しています。 私は部署とその科目に関する情報を削り取ろうとしています。 しかし、各部門に異なる件数の科目があるので、後でデータを一緒にリンクできるようにリストのリストを作成する必要があります。私はインデックスのエラーをナビゲートすることができましたし、問題は主題リストをコンパイルすることから来ているようです。リストのリストへのデータの解析

from lxml import html 
import requests 

page = requests.get('URL') 

page_source_code = html.fromstring(page.text) 


departments_list = [] 
subject_list = [] 

for dep in range(1,3): 
    departments = page_source_code.xpath('tag' 
             +str(dep)+']tag/text()') 

    ### print(dep, departments) 
    if departments == []: 
     pass 
    else: 
     departments_list.append(departments[0]) 


    for sub in range(1,20): 
     subjects = page_source_code.xpath('tag' 
             +str(dep)+']tag' 
             +str(sub)+']tag/text()') 
     ### print(sub, subjects) 
     if subjects == []: 
      pass 
     else: 
      subject_list.append(subjects[0]) 

print('Department list ------ ', len(departments_list), departments_list, '\n') 
print('Subject list ------ ', len(subject_list), subject_list) 

私の出力は次のようになります。

Department list ------ 2 ['Department_1', 'Department_2'] 

Subject list ------ 7 ['Subject_1'(dep_1), 'Subject_2 '(dep_1), 'Subject_3 '(dep_1), 'Subject_4'(dep_1), 'Subject_5'(dep_2), 'Subject_6 '(dep_2), 'Subject_7 '(dep_2)'] 

このコードは、1つのリストにすべての科目を入れているようです。次のように私はそれをしたいと思います:

Subject list ------ 7 [['Subject_1'(dep_1), 'Subject_2 '(dep_1), 'Subject_3 '(dep_1), 'Subject_4'(dep_1)], ['Subject_5'(dep_2), 'Subject_6 '(dep_2), 'Subject_7 '(dep_2)']] 

答えて

0

次の2つが[0]の文字列を対象リスト に対してグローバルに2つのリストを追加し、被験者の「dep_1」または 'dep_2という言葉を見つける必要があります。

 #declare the list for subject 
    sub_list1 = [] sub_list2 = [] 

    #this code is under the second for loop 
    if subjects.find('dep_1') == -1 : 
     sub_list2.append(subjects[0]) 
    else: 
     sub_list1.append(subjects[0]) 

    #Please remove the subjectList.append statement 
    #from second for loop 
    #and put it end of both loop like that . 
    subjectList = [sub_list1,sub_list2] 
関連する問題