[파이썬] JSON의 "유니코드 디코드 에로:"cp 932"~"오류 처리

4505 단어 Python잘못tech

일어난 일


파이톤이 기뻐서 출력으로 100개의 자연 언어 처리를 했을 때.
Mac로 두드린 원본 코드를 GitHub로 높여서 Windows를 만질 때git clone으로 시작하고 싶습니다
json 파일만 읽는 중 다음과 같은 오류가 발생했습니다.
    for line in f:
UnicodeDecodeError: 'cp932' codec can't decode byte 0x85(以下略)
????

컨디션


Macbook
Python 3.8.0
Windows 10
Python 3.8.5

소스 코드


# coding: utf-8
import gzip
import json
#正規表現使うためのライブラリ
import re

def search_UK():
    with gzip.open('chart3/jawiki-country.json.gz',mode='rt') as f:
        for line in f:
            json_load = json.loads(line)
            if json_load['title'] == 'イギリス':
                return json_load['text']


#findall(pattern, string)	正規表現にマッチする部分文字列を全て探しだしリストとして返します。
result = re.findall(r'^(.*\[\[Category:.*\]\].*)$',search_UK(),re.MULTILINE)

for line in result:
    print(line)

찾아봤는데..


Windows 환경에서 기본 문자 인코딩은 인 것 같습니다.
Python에서 문자 인코딩을 지정할 때
4
# coding: utf-8
이렇게 쓰면 돼요. Mac에서는 그렇게 움직이지만 Windows는 그렇지 않은 것 같아요.

해결책


json 파일을 연 for문에서 오류가 발생했기 때문입니다
4
 with gzip.open('chart3/jawiki-country.json.gz',mode='rt',encoding = 'utf-8') as f:
를 열면 utf-8로 변경됩니다.
그래서 순조롭게 움직였다!!!

끝말


일반적으로 이런 문자 코드와 환경 구조는 걸려 넘어지겠지...

좋은 웹페이지 즐겨찾기