アプリ版:「スタンプのみでお礼する」機能のリリースについて

atomでcsvファイル内の簡単な集計プログラムを作っていたんですがこのようなエラーがでて何がいけないのかわかりません。有識者の方いたら教えてほしいです。
コード

import csv
count = {}
with open('syukei.csv',"r",encoding="utf-8") as csvfile:
for r in csv.reader(csvfile):
a = 0
while True:
r[7] == 2 #kuruma
a = a +1
if r[7] == 1: #hito
break
b = 0
while True:
r[7] == 1
b = b +1
if [7] == 2:
break

エラー内容
「Traceback (most recent call last):
File "C:\Users\UnolabUser01\Downloads\syuukei.py", line 4, in <module>
for r in csv.reader(csvfile):
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.2288.0_x64__qbz5n2kfra8p0\lib\codecs.py", line 322, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8e in position 33: invalid start byte」

A 回答 (3件)

Windows上で作ったCSVファイルなら日本語はSJISになっていることが多いので、ファイルのencodingは'SJIS'とかしておかないと日本語があるとエラーになりますね。

    • good
    • 0

0x8e はシフトJISの漢字の1バイト目だろうね。


UTF8の文字の先頭バイトは0x00~0x7F、0xC2~0xff
なので、0x8eは有り得ない。
    • good
    • 1

>with open('syukei.csv',"r",encoding="utf-8") as csvfile:


(中略)
>UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8e in position 33: invalid start byte」

てことなので、
 「CSVファイルが UTF-8 でないのかもしれない」
と考えるのが妥当ですね。
とりあえず、33個目のデータが正常かを確かめてみましょう。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!