1

所以我有这个东西

{'apn': 'censored', 'support_data_mode': False, 'data_usr_name': 'censored', 'data_password': 'censored'} 

当从使用 NanoCBOR 的系统中读取这些数据时,我会得到类似这样的信息

b'\xbfcapnjcensoredqsupport_data_mode\xf4mdata_usr_namedcensoredmdata_passworddcensored\xff'

我可以在 Python 3 中对其进行解码并获得正确的结果。但是当我尝试将其编码回来时,就像这样

b'\xa4capnjcensoredqsupport_data_mode\xf4mdata_usr_namedcensoredmdata_passworddcensored'

并且系统不会将其作为有效消息取回。

A 尝试了所有 Python 库 cbor、cbor2 flynn 和 flunn。

文档很少,我不知道如何以正确的格式对其进行编码。

4

1 回答 1

0

我找到了答案。是的,两种格式都是正确的,但这不是重点。问题是如何\xbf在 python 中创建一种地图。我做到了!

from flunn import dumps, loads, mapping
dump_map = [('device_id', 1), ('power_status', 1)]
payload = dumps(mapping((a for a in dump_map)))

结果输出是:

b'\xbfidevice_id\x01lpower_status\x01\xff'

现在格式是我想要的,系统接受它为有效。

于 2021-08-27T08:57:25.730 回答