[PYTHON] 문자열에서 UTF 이외의 8 개 기호를 모두 삭제하십시오.
PYTHON문자열에서 UTF 이외의 8 개 기호를 모두 삭제하십시오.
나는 많은 양의 파일과 파서를 가지고있다. 내가해야 할 일은 utf-8이 아닌 모든 기호를 제거하고 mongodb에 데이터를 저장하는 것입니다. 현재 나는 이와 같은 코드를 가지고있다.
with open(fname, "r") as fp:
for line in fp:
line = line.strip()
line = line.decode('utf-8', 'ignore')
line = line.encode('utf-8', 'ignore')
어떻게 든 나는 여전히 오류가 발생한다.
bson.errors.InvalidStringData: strings in documents must be valid UTF-8:
1/b62010montecassianomcir\xe2\x86\x90ta0\xe2\x86\x90008923304320733/290066010401040101506055soccorin
나는 그것을 얻지 않는다. 그것을 할 수있는 간단한 방법이 있습니까?
UPD : Python과 Mongo가 Utf-8 Valid string의 정의에 동의하지 않는 것 같습니다.
해결법
-
==============================
1.마지막 두 줄 대신 코드 줄 아래에서 시도하십시오. 희망이 도움이 :
마지막 두 줄 대신 코드 줄 아래에서 시도하십시오. 희망이 도움이 :
line=line.decode('utf-8','ignore').encode("utf-8")
-
==============================
2.파이썬 3의 경우이 스레드의 주석에서 언급했듯이 다음을 수행 할 수 있습니다.
파이썬 3의 경우이 스레드의 주석에서 언급했듯이 다음을 수행 할 수 있습니다.
line = bytes(line, 'utf-8').decode('utf-8', 'ignore')
'무시'매개 변수는 문자를 디코딩 할 수없는 경우 오류가 발생하지 않도록합니다.
행이 이미 바이트 객체 (예 : b'my string ') 인 경우 디코드 ('utf-8 ','ignore ')로 디코딩하면됩니다.
-
==============================
3.utf-8 문자를 처리하지 않는 예제
utf-8 문자를 처리하지 않는 예제
import string test=u"\n\n\n\n\n\n\n\n\n\n\n\n\n\nHi <<First Name>>\nthis is filler text \xa325 more filler.\nadditilnal filler.\n\nyet more\xa0still more\xa0filler.\n\n\xa0\n\n\n\n\nmore\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfiller.\x03\n\t\t\t\t\t\t almost there \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nthe end\n\n\n\n\n\n\n\n\n\n\n\n\n" print ''.join(x for x in test if x in string.printable)
-
==============================
4.
with open(fname, "r") as fp: for line in fp: line = line.strip() line = line.decode('cp1252').encode('utf-8')
from https://stackoverflow.com/questions/26541968/delete-every-non-utf-8-symbols-from-string by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 목록을 정렬하지 않고 정렬되지 않은 목록의 N 번째 항목 찾기 (0) | 2018.11.15 |
---|---|
[PYTHON] 방화벽 뒤에서 작동하지 않는 파이프 (0) | 2018.11.15 |
[PYTHON] 모든 정규식 일치의 색인을 찾으십니까? (0) | 2018.11.15 |
[PYTHON] 치료 및 응답 상태 코드 : 어떻게 검사 할 것인가? (0) | 2018.11.15 |
[PYTHON] 파이썬 3 대 파이썬 2 맵 비헤이비어 (0) | 2018.11.15 |