[py3] Fixed JSON deserialization

This commit is contained in:
Claude Paroz 2012-08-11 20:58:45 +02:00
parent b82eb10b26
commit 7d0f883192
1 changed files with 3 additions and 4 deletions

View File

@ -61,13 +61,12 @@ def Deserializer(stream_or_string, **options):
""" """
Deserialize a stream or string of JSON data. Deserialize a stream or string of JSON data.
""" """
if not isinstance(stream_or_string, (bytes, six.string_types)):
stream_or_string = stream_or_string.read()
if isinstance(stream_or_string, bytes): if isinstance(stream_or_string, bytes):
stream_or_string = stream_or_string.decode('utf-8') stream_or_string = stream_or_string.decode('utf-8')
try: try:
if isinstance(stream_or_string, six.string_types):
objects = json.loads(stream_or_string) objects = json.loads(stream_or_string)
else:
objects = json.load(stream_or_string)
for obj in PythonDeserializer(objects, **options): for obj in PythonDeserializer(objects, **options):
yield obj yield obj
except GeneratorExit: except GeneratorExit: