You need to enable JavaScript to run this app. Micropython中如何将bytearray地址正确存入JSON文件并保留单反斜杠
优惠活动
大模型
产品
解决方案
定价
更多

Micropython中如何将bytearray地址正确存入JSON文件并保留单反斜杠

解决MicroPython中DS18B20地址存JSON的转义问题

问题根源

你遇到的反斜杠丢失/双反斜杠问题,本质是JSON字符串转义规则和Python字节对象的repr()输出规则冲突导致的:JSON仅支持\u开头的Unicode转义、\n/\t等少数特殊转义,不识别Python字节表示中的\x转义序列,直接存储repr(bytearray)的结果必然会出现转义异常。

最优解决方案(推荐)

不要直接存储字节对象的字符串表示,将字节地址转为十六进制字符串后再存储,完全规避转义问题:

  1. 存储前转换:将拿到的DS18B20字节地址转为十六进制ASCII串
# addr为读传感器获取的原始bytearray地址
addr = bytearray(b'(b\xe5V\xb5\x01<:')
# 转为纯ASCII十六进制字符串,无任何特殊转义符
addr_hex = addr.hex()
# 直接将addr_hex存入JSON文件即可
  1. 读取后还原:从JSON读出十六进制串后直接转回原始bytearray
# addr_hex_from_json为从JSON读取到的十六进制字符串
addr = bytearray.fromhex(addr_hex_from_json)
# 还原后的addr和原始传感器地址完全一致,可直接用于后续温度读取操作

双反斜杠问题补充说明

你预先转义反斜杠后读取到的双反斜杠,只是Python打印字符串repr()结果的展示效果,实际内存中存储的是单个反斜杠,可通过len()函数验证字符串长度确认。但该方案后续需要自行解析字符串还原字节地址,实现复杂、容易出错,完全不推荐使用。

内容的提问来源于stack exchange,提问作者Ma Sch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 20:15:04