728x90
반응형
java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x99 "...' for column 'DSC' at row 1 는 뉴스데이터 클롤링 과정에서 수집된 데이터를 mysql에 저장하는 과정에서 내용 중에 😙와 같은 이모지가 포함된 내용들을 저장하는 과정 중에 발생한다.
이를 해결하기 위한 방법으로는
1. 파이썬 정규 표현식을 이용하여 이모지 제거 방법
- 파이썬에서는 정규 표현식을 지원하기 위해 re(regular expression) 모듈을 제공한다.
- import re 를 통해 모듈을 임포트한 뒤, emoji_remove = re.compile('정규표현식')을 통해서 정규표현식을 컴파일하고, 컴파일된 패턴 객체(emoji_remove)를 이용하여 이 객체가 가지고 있는 메서드를 통해 작업을 수행할 수 있다.
- 컴파일은 아래 그림처럼 이모지와 심볼 관련 내용들을 컴파일시키고, re.sub() 표현식을 이용해서 이모지 패턴을 제외한 문자만 저장되도록 한다.
- 제거된 이모지로 인해 발생되어지는 2칸이상의 공백을 제거하기 위해 re.sub(' +', ' ', text_final) 표현식을 이용한 불필요한 공백을 제거하면 아래와 같은 결과를 얻을 수 있다.
- 이렇게 수정된 본문 내용들을 Mysql DB에 저장을 하면 해당 오류를 해결할 수 있다.
반응형
2. Mysql DB connection시에 인코딩 변경하여 해결
- 본문에 첨가되어져 있는 이모티콘을 제거하지 않고 모든 내용을 DB에 저장하기 위해서는 파이썬에서 데이터 베이스 연결 시에 인코딩을 utf8mb4로 지정해 주면 에러 없이 데이터 베이스에 저장된다.
728x90
반응형
'Programming > 파이썬 (Python)' 카테고리의 다른 글
형태소 분석기 mecab 설치 (Mac os) (1) | 2023.05.03 |
---|---|
[Python] CSV 파일 파이썬으로 열기 (0) | 2023.01.17 |
[Mac] Crontab 오류 Solution (4) | 2023.01.06 |
[Python] Crontab을 이용한 자동 Python 실행 등록하기 (Mac) (0) | 2023.01.03 |
[Python] Schedule (Mac OS) (0) | 2023.01.02 |
댓글