0

python 2.7과 함께 elasticsearch를 사용하고 있습니다. 나는 많은 텍스트를 분석하고 저장해야한다. 구문 에러 : 종종 다음과 같은 오류가 나타납니다Python 2.7 - Elasticsearch - SyntaxError : ASCII 문자가 아닌 ' xc3'

import elasticsearch 

es = elasticsearch.Elasticsearch("127.0.0.1:9200") 
test = 'sarà' 
doc = { 
'ID':'123456', 
'field':unicode(test, errors='ignore'), 
    } 
es.index('test_db','test',doc) 

오류는 다음과 같습니다 : 비 ASCII 문자를 ... 나는 테스트를 위해 다음과 같은 코드를 작성 유래에 다른 대답을 읽은 후

SyntaxError: Non-ASCII character '\xc3' in file /home/user/PycharmProjects/ubuntu/asciiTest.py on line 4, but no encoding declared.

를 I 시도 :

unicode(test, errors='ignore') 

다시 같은 오류가 발생했습니다. 이러한 특수 문자를 관리하는 방법을 모르겠습니다.

답변

1

파이썬은 비 ASCII 문자가 사용되었지만 소스 코드의 형식을 선언하지 않았 음을 알려줍니다.

오류는 일반적으로 당신을 참조하는 메시지를 동반 PEP-263-https://www.python.org/dev/peps/pep-0263/

당신은 단순히 소스 코드의 맨 위에 다음을 추가 할 수 있습니다

# coding=<encoding name> 

<encoding name> 인코딩 당신입니다 소스 코드에 사용되었습니다. utf-8을 사용하는 것이 좋습니다.

비 ASCII를 사용하는 경우 유니 코드 문자열을 사용해야합니다. 단순히 문자열 값 앞에 u을 추가하면됩니다.

예.

test = u'sarà' 

unicode()의 모든 용도를 제거하십시오. IMHO, unicode()은 인코딩없이 사용하지 말아야합니다.