【问题标题】:Python Protobuf SerializeToString needs an argument?Python Protobuf SerializeToString 需要一个参数吗?
【发布时间】:2021-12-30 03:26:54
【问题描述】:

Python代码:

import socket
from deviceReadout_pb2 import DeviceReadout
import protobuf3
import numpy as np
import threading

protocol = DeviceReadout()
protocol.ledStatus = msg
protocol.ledCount = len(ledStatus)               
        
toTransmit = protocol.SerializeToString()

Protobuf:

syntax = "proto3";

package readout;

message DeviceReadout
{
    bytes ledStatus = 1;
    int32 ledCount = 2;
}

protocol 是一个 Protobuf 消息。调用 SerializeToString 给我错误“未绑定的方法 CMessage.SerializeToString() 需要一个参数”,但我没有找到任何此方法需要参数的示例。 我正在使用 Protobuf3

【问题讨论】:

    标签: python serialization protocol-buffers


    【解决方案1】:

    我怀疑你想让protocol = DeviceReadout() 创建一个新的类实例。

    请:

    • 包含更具代表性的代码子集。在这种情况下,您的导入和原型会有所帮助。
    • 不要在容易复制粘贴代码的地方包含屏幕截图(可能会被删除且无法复制)

    【讨论】:

    • 编辑帖子并添加请求信息
    【解决方案2】:

    已解决的问题: DeviceReadout 后缺少 () 和

    protocol.ledStatus = msg
    

    msg 是一个字节数组,所以我必须将它转换为字节

    protocol.ledStatus = bytes(msg)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-29
      • 2011-10-07
      • 2017-08-30
      • 1970-01-01
      • 1970-01-01
      • 2023-01-16
      • 2023-01-11
      • 2015-07-14
      相关资源
      最近更新 更多