0

Ich benutze elasticsearch mit Python 2.7. Ich muss viel Text analysieren und speichern; oft die folgende Fehlermeldung angezeigt: Syntaxerror: Nicht-ASCII-Zeichen ... schrieb ich den folgenden Code für die Prüfung:Python 2.7 - Elasticsearch - SyntaxError: Nicht-ASCII-Zeichen ' 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) 

Der Fehler ist:

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

Nach andere Antwort lesen auf Stackoverflow I versucht:

unicode(test, errors='ignore') 

Aber wieder der gleiche Fehler. Ich weiß nicht, wie ich mit diesen Sonderzeichen umgehen soll.

Antwort

1

Python teilt Ihnen mit, dass Sie Nicht-ASCII-Zeichen verwenden, aber das Formatieren des Quellcodes nicht deklariert haben.

Der Fehler in der Regel durch eine Meldung begleitet Sie sich beziehen PEP-263-https://www.python.org/dev/peps/pep-0263/

Sie können einfach die folgende an die Spitze des Quellcodes hinzufügen:

# coding=<encoding name> 

<encoding name> ist die Codierung Sie habe für den Quellcode benutzt. Es ist ratsam, utf-8 zu verwenden.

Wenn Sie Nicht-ASCII verwenden, sollten Sie Unicode-Zeichenfolgen verwenden. Sie können dies erreichen, indem Sie einfach einen u vor den String-Wert anfügen.

z.

test = u'sarà' 

Entfernen Sie alle Anwendungen von unicode(). IMHO, unicode() sollte niemals ohne eine Kodierung

verwendet werden