diff --git a/elasticsearch/serializer.py b/elasticsearch/serializer.py index 970db113..1e932c3d 100644 --- a/elasticsearch/serializer.py +++ b/elasticsearch/serializer.py @@ -21,7 +21,11 @@ class JSONSerializer(object): def dumps(self, data): # don't serialize strings if isinstance(data, (type(''), type(u''))): - return data + try: + return data.encode('utf-8') + except UnicodeDecodeError: + # Python 2 and str, no need to re-encode + return data try: return json.dumps(data, default=self.default)