Assignment not allowed to message, map, or repeated field \"rect\" in protocol message object
报错原因
grpc中的字段rect 不允许被赋值
rect是DnBoundingRect 的对象
result_pro = digitalNumber_pb2.DnResponse()
for bbox_dict in bbox_list:
bbox = digitalNumber_pb2.DnBoundingRect()
bbox.x = bbox_dict['rect'][0]
bbox.y = bbox_dict['rect'][1]
bbox.w = bbox_dict['rect'][2]
bbox.h = bbox_dict['rect'][3]
result_dict = digitalNumber_pb2.DnResult()
result_dict.classid = bbox_dict['classid']
result_dict.score = bbox_dict['score']
result_dict.rect = bbox
result_pro.results.append(result_dict)
解决
result_pro = digitalNumber_pb2.DnResponse()
for bbox_dict in bbox_list:
result_dict = digitalNumber_pb2.DnResult()
result_dict.classid = bbox_dict['classid']
result_dict.score = bbox_dict['score']
result_dict.rect.x = bbox_dict['rect'][0]
result_dict.rect.y = bbox_dict['rect'][1]
result_dict.rect.w = bbox_dict['rect'][2]
result_dict.rect.h = bbox_dict['rect'][3]
result_pro.results.append(result_dict)
本文介绍了一种常见的gRPC消息传递错误:尝试给消息、映射或重复字段赋值,并提供了解决方案。通过直接设置字段属性而非创建单独的对象再赋值,可以避免此类错误。

被折叠的 条评论
为什么被折叠?



