小编mz8*_*z8i的帖子

如何在Python中使json.dumps忽略不可序列化的字段

我试图序列化使用Construct2.9库解析一些二进制数据的输出.我想将结果序列化为JSON.

packet是Construct类的实例Container.

显然它包含一个隐藏_io的类型BytesIO- 请参阅dict(packet)下面的输出:

{
'packet_length': 76, 'uart_sent_time': 1, 'frame_number': 42958, 
'subframe_number': 0, 'checksum': 33157, '_io': <_io.BytesIO object at 0x7f81c3153728>, 
'platform':661058, 'sync': 506660481457717506, 'frame_margin': 20642,
'num_tlvs': 1, 'track_process_time': 593, 'chirp_margin': 78,
'timestamp': 2586231182, 'version': 16908293
}
Run Code Online (Sandbox Code Playgroud)

现在,调用json.dumps(packet)显然会导致TypeError:

...

File "/usr/lib/python3.5/json/__init__.py", line 237, in dumps
    **kw).encode(obj)
File "/usr/lib/python3.5/json/encoder.py", line 198, in encode
    chunks = self.iterencode(o, _one_shot=True)
File "/usr/lib/python3.5/json/encoder.py", line 256, in iterencode
    return _iterencode(o, 0)
File "/usr/lib/python3.5/json/encoder.py", line 179, in …
Run Code Online (Sandbox Code Playgroud)

python json construct python-3.x

7
推荐指数
2
解决办法
8445
查看次数

标签 统计

construct ×1

json ×1

python ×1

python-3.x ×1