You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用PubNub发布加密消息出现dict与bytes类型错误如何解决

问题原因
  • PubNub Python SDK的encrypt方法仅支持输入字符串/字节类型数据,不支持直接加密Python字典对象,直接传入字典msg时,SDK内部加密逻辑尝试将字典与字节类型的加密运算参数做拼接,就触发了dict和bytes不支持相加的类型错误。
可行解决方案

加密发布端需要先把字典序列化为JSON字符串,再执行加密操作,修改后的代码如下:

import json

msg = {"freq" : modbusRead[0],
       "voltage" : modbusRead[1],
       "rpm" : modbusRead[2]
      }
# 先将字典序列化为JSON字符串
msg_str = json.dumps(msg)
# 加密字符串
secretMsg = pubnub.encrypt("RandomCipherKey", msg_str)

readSecret = pubnub.publish().channel(CHANNEL).message(secretMsg).pn_async(publish_callback)

对应的订阅接收端,拿到解密后的内容后,需要反序列化回字典才能正常使用字段,示例处理逻辑:

# 接收端解密后拿到的是JSON字符串
decrypted_str = pubnub.decrypt("RandomCipherKey", received_secret_msg)
msg = json.loads(decrypted_str)
# 之后就可以正常取msg["freq"]等字段了

内容的提问来源于stack exchange,提问作者Rajinder Dua

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 02:27:01