0

次の構造の csv ファイルがあります。

A, 10
B, 11
C, 8
D, 12
A, 21
B, 7
D, 22
D, 15
C, 111
D, 50
A, 41
B, 32
C, 19
D, 11

行がA、B、C、D形式の場合、ファイル全体を読み取り、2列目にデータを保存したい。リストがあります:

my_list = [A, B, C, D]

そして、フォーマットされている場合は4行ごとにチェックmy_listし、次のように読み取ってデータベースに保存します。

with open('csv_file.csv', 'rb') as csvfile:
        the_file = csv.reader(csvfile.read().splitlines())

        for idx, row in enumerate(islice(zip(*[the_file]*4), 100)):
            my_model = Django_model()
            if row[0][0] == my_list[0]:
                if row[0][0] == my_list[0] and row[1][0] == my_list[1] and \
                    row[2][0] == my_list[2] and row[3][0] == my_list[3]:
                    my_model.a_field = row[0][1]
                    my_model.b_field = row[1][1]
                    my_model.c_field = row[2][1]
                    my_model.d_field = row[3][1]
                    my_model.save()

row実際には、 の構造がと同じである場合にのみ機能しmy_listます。しかし、乱雑な部分 (A、B、D、D、C、D) に到達すると、行が正しく読み取られないため、多くの行がスキップされます。

問題は、次の興味深い行 (my_listフォーマットに従う) にジャンプして読むにはどうすればよいかということです。一方、スキップされた行を別のリストに保存しますか?

Pandas が役立つと聞いたことがありますが、ドキュメントを調べたところ、このケースを解決する方法が見つかりませんでした。

4

1 に答える 1