From 9c446d5cb1308d5e17204a04de6be3364aeab4eb Mon Sep 17 00:00:00 2001 From: Andy McCurdy Date: Wed, 14 Nov 2018 15:42:28 -0800 Subject: use str() to encode int or long values on python2.7, repr() on a long produces '123L', which is clearly not what we want --- redis/connection.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/redis/connection.py b/redis/connection.py index 3ab9573..87beb01 100755 --- a/redis/connection.py +++ b/redis/connection.py @@ -112,8 +112,11 @@ class Encoder(object): # special case bool since it is a subclass of int raise DataError("Invalid input of type: 'bool'. Convert to a " "byte, string or number first.") - elif isinstance(value, (int, long, float)): + elif isinstance(value, float): value = repr(value).encode() + elif isinstance(value, (int, long)): + # python 2 repr() on longs is '123L', so use str() instead + value = str(value).encode() elif not isinstance(value, basestring): # a value we don't know how to deal with. throw an error typename = type(value).__name__ -- cgit v1.2.1