Handle memoryview like bytes instances and decode bytes to utf8 (#7062)

This commit is contained in:
Ville Brofeldt
2019-03-20 02:57:09 +02:00
committed by Maxime Beauchemin
parent aa9e273900
commit c1c8e50360

View File

@@ -328,6 +328,8 @@ def datetime_f(dttm):
def base_json_conv(obj):
if isinstance(obj, memoryview):
obj = obj.tobytes()
if isinstance(obj, numpy.int64):
return int(obj)
elif isinstance(obj, numpy.bool_):
@@ -340,11 +342,9 @@ def base_json_conv(obj):
return str(obj)
elif isinstance(obj, timedelta):
return str(obj)
elif isinstance(obj, memoryview):
return str(obj.tobytes(), 'utf8')
elif isinstance(obj, bytes):
try:
return '{}'.format(obj)
return obj.decode('utf-8')
except Exception:
return '[bytes]'