Как я могу хранить данные `None` в поле байтов Protobuf? - PullRequest
0 голосов
/ 13 мая 2019

Я разрабатываю SDK версии Python. Данные должны быть 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 голосов
/ 13 мая 2019

Вы можете сохранить пустой объект bytes (b'') или изменить тип данных на optional bytes:

optional bytes script_sig = 2; 
...