에러화면

 

 

AI 학습데이터에 활용할 데이터셋을 불러오는 중에 아래와 같은 에러가 발생했습니다.

 

Error opening file

Unexpected UTF-8 BOM (decode using utf-8-sig): line 1 column 1 (char 0)

Make sure /Users/kaflix_wanya/Desktop/current/카스캐닝 데이터셋/parts_labeling/0831_1996개_jpg+json/100210979526_576120.json is a valid label file.'

 

문제는 annotating, labeling 데이터를 저장하고 있는 json 파일을 불러오면서 발생한 에러인데요.

이 많은 json파일의 인코딩을 어떻게 바꿀까 고민하다가 파이썬 코드로 해결하였습니다.

 

데이터셋 경로를 불러와서 -> 데이터셋 경로 내의 모든 json 파일을 읽어온 후 -> UTF-8로 다시 인코딩 -> 변경된 인코딩형식으로 json파일 저장

 

위 순서대로 작업한 후 다시 labelme에서 'open dir'을 통해 학습데이터 경로를 불러오니 오류없이 잘 작동합니다.

아래는 코드입니다.

import os
import json

def convert_json_encoding(folder_path):
    # 주어진 폴더 내의 모든 파일에 대해 반복
    for filename in os.listdir(folder_path):
        filepath = os.path.join(folder_path, filename)
        
        # 파일이 JSON 파일인지 확인
        if filename.endswith('.json'):
            # JSON 파일을 UTF-8 인코딩으로 읽어들임
            with open(filepath, 'r', encoding='utf-8-sig') as file:
                data = json.load(file)
            
            # 같은 파일을 UTF-8 인코딩으로 다시 저장
            with open(filepath, 'w', encoding='utf-8') as file:
                json.dump(data, file, ensure_ascii=False, indent=4)

# 변경할 폴더 경로를 지정
folder_path = '/User/Dataset'

# 함수 호출
convert_json_encoding(folder_path)

+ Recent posts