From 5106b232e799d64fa227a14e47026758f31aa6ef Mon Sep 17 00:00:00 2001 From: Otto Bittner Date: Tue, 4 Aug 2020 16:00:15 +0200 Subject: [PATCH] python: Handle byte strings when converting protobuf to dict Fixes #1165 Traceback (most recent call last): File "../criu/crit/crit-python3", line 6, in cli.main() File "/home/xcv/repos/criu/crit/pycriu/cli.py", line 410, in main opts["func"](opts) File "/home/xcv/repos/criu/crit/pycriu/cli.py", line 43, in decode json.dump(img, f, indent=indent) File "/usr/lib/python3.8/json/__init__.py", line 179, in dump for chunk in iterable: File "/usr/lib/python3.8/json/encoder.py", line 431, in _iterencode yield from _iterencode_dict(o, _current_indent_level) File "/usr/lib/python3.8/json/encoder.py", line 405, in _iterencode_dict yield from chunks File "/usr/lib/python3.8/json/encoder.py", line 325, in _iterencode_list yield from chunks File "/usr/lib/python3.8/json/encoder.py", line 405, in _iterencode_dict yield from chunks File "/usr/lib/python3.8/json/encoder.py", line 405, in _iterencode_dict yield from chunks File "/usr/lib/python3.8/json/encoder.py", line 438, in _iterencode o = _default(o) File "/usr/lib/python3.8/json/encoder.py", line 179, in default raise TypeError(f'Object of type {o.__class__.__name__} ' TypeError: Object of type bytes is not JSON serializable Co-authored-by: Julian Signed-off-by: Otto Bittner --- lib/py/images/pb2dict.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/py/images/pb2dict.py b/lib/py/images/pb2dict.py index 40a6036cf..eecdc0522 100644 --- a/lib/py/images/pb2dict.py +++ b/lib/py/images/pb2dict.py @@ -357,7 +357,7 @@ def pb2dict(pb, pretty=False, is_hex=False): else: d_val = _pb2dict_cast(field, value, pretty, is_hex) - d[field.name] = d_val + d[field.name] = d_val.decode() if type(d_val) == bytes else d_val return d