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
1 changed files with 3 additions and 3 deletions

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]'