본문 바로가기
카테고리 없음

[파이선] UnicodeDecodeError 해결하기

by makepluscode 2022. 3. 1.
반응형

파이선 파일 읽기 중에 발생하는 UnicodeDecodeError 해결하기

UnicodeDecodeError 에러

UnicodeDecodeError 문제발생

https://github.com/rmunro/bicycle_detection.git

 

GitHub - rmunro/bicycle_detection: Practical example from Human-in-the-Loop Machine Learning book

Practical example from Human-in-the-Loop Machine Learning book - GitHub - rmunro/bicycle_detection: Practical example from Human-in-the-Loop Machine Learning book

github.com

github 파이선 오픈소스를 실행하는 과정에서 다음과 같은 에러가 발생하였다.

Traceback (most recent call last):
  File "src\\gevent\\greenlet.py", line 906, in gevent._gevent_cgreenlet.Greenlet.run
  File "bicycle_detection.py", line 991, in load_data
    validation_annotations = load_annotations(validation_labels_path, validation_images_path, load_all = False)
  File "bicycle_detection.py", line 281, in load_annotations
    for row in csvobj:
UnicodeDecodeError: 'cp949' codec can't decode byte 0xec in position 2944: illegal multibyte sequence
2022-03-01T10:45:09Z <Greenlet at 0x18e772fd4c8: load_data> failed with UnicodeDecodeError

에러가 발생한 파이선 코드를 보면, gzip 으로 압축된 csv 파일을 읽는 코드 이다. csv 파일을 cp949 코덱으로 읽는 과정에서 에러가 발생하였다.

    file = gzip.open(image_filepath, mode='rt')
    csvobj = csv.reader(file, delimiter = ',',quotechar='"')
    for row in csvobj:

UnicodeDecodeError 해결방법

csv 파일을 uft-8 형식으로 open 하고, 읽으면 에러가 발생하지 않는다.

    file = gzip.open(image_filepath, mode='rt', encoding='utf-8')
    csvobj = csv.reader(file, delimiter = ',',quotechar='"')
    for row in csvobj:

관련자료

https://namu.wiki/w/CP949

반응형