如何区分protobuf重复字段显式设置为空列表与根本没有设置(在python中)?

2024-06-23 02:36:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我的protobuf中有一个重复字段,它对调用者公开。我想知道是调用者显式地将其设置为空列表,还是该字段根本没有设置。在

HasField方法不适用于重复的字段,因此我尝试使用ListFields方法枚举所有的集合字段。不幸的是,不管我是否message.repeated_字段.extend([])“或根本不设置字段,则该字段不会显示在ListFields()中。在

是否有可能区分重复字段被设置为空与未设置全部?如果是这样的话,任何建议都会有帮助。在


Tags: 方法message列表repeated建议区分protobufextend
1条回答
网友
1楼 · 发布于 2024-06-23 02:36:38

我所看到的一切都表明不可能区分空的重复字段和未设置的重复字段。在

我是这样解决的:

message NameList {
   repeated string names = 1;
}

message SomeResponse {
   optional NameList names = 1;
}

然后当您想发送一个空列表时,只需初始化NameList字段。在

相关问题 更多 >