Python 2.7 - Elasticsearch - SyntaxError: Non-ASCII character '\xc3'

Python 2.7 - Elasticsearch - SyntaxError: Non-ASCII character '\xc3'

我在 python 2.7 中使用 elasticsearch。我必须分析和存储大量文本;经常出现如下错误: 语法错误:非 ASCII 字符 ... 我写了以下代码进行测试:

 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)

错误是:

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

在阅读了关于 Whosebug 的其他答案后,我尝试了:

unicode(test, errors='ignore')

但是还是一样的错误。我不知道如何管理这些特殊字符。

Python 说明你使用了非 ASCII 字符,但没有声明源代码的格式。

该错误通常伴随一条消息,将您引向 PEP-263 - https://www.python.org/dev/peps/pep-0263/

您只需将以下内容添加到源代码的顶部即可:

# coding=<encoding name>

<encoding name> 是您用于源代码的编码。建议使用utf-8.

使用非 ASCII 时,您应该使用 Unicode 字符串。您可以通过简单地在字符串值前面附加一个 u 来实现。

例如

test = u'sarà'

删除所有对 unicode() 的使用。恕我直言,unicode() 不应该在没有给定编码的情况下使用