From 12be146e45103c3c9730c791d4885703ad88d1e7 Mon Sep 17 00:00:00 2001 From: broono Date: Mon, 9 Oct 2017 13:39:54 +0800 Subject: [PATCH] Fix: AttributeError: 'bytes' object has no attribute 'encode'(PY3) --- elasticsearch/client/utils.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/elasticsearch/client/utils.py b/elasticsearch/client/utils.py index 120b4abe..eda4318f 100644 --- a/elasticsearch/client/utils.py +++ b/elasticsearch/client/utils.py @@ -3,7 +3,7 @@ from __future__ import unicode_literals import weakref from datetime import date, datetime from functools import wraps -from ..compat import string_types, quote_plus +from ..compat import string_types, quote_plus, PY2 # parts of URL to be omitted SKIP_IN_PATH = (None, '', b'', [], ()) @@ -32,7 +32,10 @@ def _escape(value): # encode strings to utf-8 if isinstance(value, string_types): - return value.encode('utf-8') + if PY2 and isinstance(value, unicode): + return value.encode('utf-8') + if not PY2 and isinstance(value, str): + return value.encode('utf-8') return str(value)