python - 如何递归遍历 Protobuf Python 消息以查找所有字段
问题描述
我就是这样做的,是否有一种本地方法可以在嵌套的 protobuf 消息中查找所有字段;
这是用于两层嵌套消息
for field in mes2.DESCRIPTOR.fields:
if 'fields' in dir(field.message_type):
for sub_field in field.message_type.fields:
print(sub_field)
解决方案
你是这个意思?
message = [1, 7, {3: "tsdf", "y": (4, 7)}, [4, 8, 'w']]
def print_fields(message):
if type(message) not in (list, tuple, dict, set):
return
for i in message:
if type(i) in (list, tuple, dict, set):
print_fields(i)
else:
print(i)
# -> 1, 7, 3, 'y', 4, 8, 'w'
推荐阅读
- amazon-web-services - 在策略中添加多个用户作为主体
- python - 烧瓶自动发送邮件
- oracle - 解释为什么我们需要在 nvl(dbms_lob.getlength(column_name_blob),0) OR nvl(vsize(column_name),0) 上加 1
- c - 试图解决“错误:'{'令牌之前的预期表达式”
- javascript - 生产中的电子应用程序抛出:错误命令失败:节点 index.js 但在开发中工作正常
- ios - 如何显示、更新和删除我的单元格?
- html - 为什么添加媒体会改变元素的某些属性?
- java - 如何处理 jsf 中的 InputMask 标记以使用 selenium2Library 从 Robot Framework 自动化测试中设置值?
- debian - 禁用 qemu 默认快捷方式
- c++ - qtextedit 设置仅当光标放在其上时才显示的文本