如何在Protobuf字节字段中保存数据“无”?

时间:2019-05-13 11:44:21

标签: python byte nonetype

我正在开发Python版本的SDK。在某些类型转换中,数据应为None,其他则应为字节。但是我不知道如何定义一个变量来保存数据?

我使用protoc生成python代码,然后创建一个事务对象,然后更新数据script_sig。在某些情况下,它应该为None,但是如果我将其设置为None,则会发生错误:TypeError: None has type NoneType, but expected one of: bytes

这是我的代码:

message Transaction { 
  repeated TxIn vin = 2; 
  repeated TxOut vout = 3; 
} 

message TxIn { 
  OutPoint prev_out_point = 1; 
  bytes script_sig = 2; 
  uint32 sequence = 3; 
}
for i in range(len(tx.vin)):
  if i != index:
    tx.vin[index].script_sig = None
  else:
    tx.vin[index].script_sig = script_pub_key

我该怎么办?谢谢。

1 个答案:

答案 0 :(得分:0)

您可以存储空的bytes对象(b''),也可以将数据类型更改为optional bytes

optional bytes script_sig = 2;