【问题标题】:Python 2.7 - Elasticsearch - SyntaxError: Non-ASCII character '\xc3'Python 2.7 - Elasticsearch - SyntaxError: Non-ASCII character '\xc3'
【发布时间】:2016-07-08 12:27:13
【问题描述】:

我在 python 2.7 中使用 elasticsearch。我必须分析和存储大量文本;经常出现如下错误: SyntaxError: 非 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)

错误是:

语法错误:文件 /home/user/PycharmProjects/ubuntu/asciiTest.py 第 4 行中的非 ASCII 字符“\xc3”,但未声明编码。

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

unicode(test, errors='ignore')

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

【问题讨论】:

    标签: python-2.7 elasticsearch character-encoding non-ascii-characters python-unicode


    【解决方案1】:

    Python 告诉您您使用了非 ASCII 字符,但尚未声明源代码的格式。

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

    您可以简单地将以下内容添加到源代码的顶部:

    # coding=<encoding name>
    

    &lt;encoding name&gt; 是您用于源代码的编码。建议使用 utf-8。

    当使用非 ASCII 时,你应该使用 Unicode 字符串。只需在字符串值前面附加一个u 即可实现此目的。

    例如

    test = u'sarà'
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-29
      • 2018-08-05
      • 2015-12-01
      • 2017-04-20
      • 1970-01-01
      • 2016-10-16
      • 2015-01-10
      • 2014-06-12
      相关资源
      最近更新 更多