2016-06-13 3 views
-2

コードが完全に動作している別のファイルをインポートしています。コーディングでエラーが発生しました:TypeError:リストのインデックスがstrではなく整数でなければなりません

しかし、上記のTypeErrorを返す 'account key'という列を持つcsvファイルをインポートしようとする行に問題があります。

import file_import as fi 

csvファイルから必要なデータをまとめて見つける機能。

def unique_students(csv_file): 
    unique_students_list = set() 
    for information in csv_file: 
     unique_students_list.add(csv_file["account_key"]) 
    return len(unique_students_list) 

#enrollment_num_rows = len(fi.enrollments) 
#engagement_num_rows = len(fi.daily_engagement)   
#submission_num_rows = len(fi.project_submissions)  

#enrollment_num_unique_students = unique_students(fi.enrollments) 
#engagement_num_unique_students = unique_students(fi.daily_engagement) 
#submission_num_unique_students = unique_students(fi.project_submissions) 
+0

は、辞書またはリストとして文書化されたcsv_fileですか? –

+0

これはリストであるはずです。 –

+0

私はそれを理解しました。ご協力ありがとうございました!! –

答えて

2

csv_file["account_key"]

リストは数値インデックスを期待しています。私が知る限り、辞書だけが文字列インデックスを受け入れます。

私はこれが何をすべきか全く分かりません。私はあなたのロジックに欠陥があると思う。ループforinformationをバインドして使用しないでください。リストが文字列インデックスを受け入れたとしても、forのループボディはすべて同じループのままであるため、同じ情報を何度も繰り返してセットに値を設定します。これは、csv_fileが(内部カウンタを前進させるなど)インデックスを作成したときに副作用があったカスタムコンテナタイプであることが予想される場合にのみ機能します。

関連する問題