Skip to content

Commit f573f35

Browse files
authored
fix: Fix JSONLinesDeserializer (#1777)
1 parent 1562d90 commit f573f35

File tree

2 files changed

+6
-5
lines changed

2 files changed

+6
-5
lines changed

src/sagemaker/deserializers.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,8 @@ def deserialize(self, stream, content_type):
266266
list: A list of JSON serializable objects.
267267
"""
268268
try:
269-
lines = stream.read().rstrip().split("\n")
269+
body = stream.read().decode("utf-8")
270+
lines = body.rstrip().split("\n")
270271
return [json.loads(line) for line in lines]
271272
finally:
272273
stream.close()

tests/unit/sagemaker/test_deserializers.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -219,16 +219,16 @@ def json_lines_deserializer():
219219
@pytest.mark.parametrize(
220220
"source, expected",
221221
[
222-
('["Name", "Score"]\n["Gilbert", 24]', [["Name", "Score"], ["Gilbert", 24]]),
223-
('["Name", "Score"]\n["Gilbert", 24]\n', [["Name", "Score"], ["Gilbert", 24]]),
222+
(b'["Name", "Score"]\n["Gilbert", 24]', [["Name", "Score"], ["Gilbert", 24]]),
223+
(b'["Name", "Score"]\n["Gilbert", 24]\n', [["Name", "Score"], ["Gilbert", 24]]),
224224
(
225-
'{"Name": "Gilbert", "Score": 24}\n{"Name": "Alexa", "Score": 29}',
225+
b'{"Name": "Gilbert", "Score": 24}\n{"Name": "Alexa", "Score": 29}',
226226
[{"Name": "Gilbert", "Score": 24}, {"Name": "Alexa", "Score": 29}],
227227
),
228228
],
229229
)
230230
def test_json_lines_deserializer(json_lines_deserializer, source, expected):
231-
stream = io.StringIO(source)
231+
stream = io.BytesIO(source)
232232
content_type = "application/jsonlines"
233233
actual = json_lines_deserializer.deserialize(stream, content_type)
234234
assert actual == expected

0 commit comments

Comments
 (0)