【Python】エラー:_csv.Error: line contains NULL byteの対処方法

pythonで以下のようにCSVファイルを読み込もうとしたときにエラーが発生した


    with open(data_file, encoding="utf-8") as f:
        for j in range(1, 40):
            next(f)
        
        reader = csv.DictReader(f, delimiter=",")

        for row in reader:

            print('row['revenue']:')

読み込みファイルの形式を確認してみるとUnicodeのBOM付きとなっていた

読み込む形式指定をUTF-8にしていたので文字コードが原因ぽいか

そこで文字コードをutf-16としてインポートするとうまく行った

以下修正版


    import codecs

    with codecs.open(data_file, 'r', 'utf-16', 'ignore') as f:
        for j in range(1, 40):
            next(f)
        
        reader = csv.DictReader(f, delimiter=",")

        for row in reader:

            print('row['revenue']:')

この場合UTF-16にしたらできた

エラー内容には直接文字コードが間違っているとは出てなかったが文字コード修正で今回はうまくいった

これが正解かはわからないがご参考に

シェアする

  • このエントリーをはてなブックマークに追加

フォローする