擅长:python、mysql、java
<p>好吧,我自己想出来了</p>
<p>我的错误是,我的<code>TopConfig</code>中只嵌套了其他<code>messages</code>,而没有其他数据字段<code>MessageToDict</code>只适用于未列出的<code>messages</code>,它也不会显示<code>enum</code>和<code>oneof</code>数据</p>
<pre><code>MessageToDict(config_pb2.py.TopConfig()) # Will produce {}
MessageToDict(config_pb2.py.LowestConfig()) # Will produce {'k1': v1, 'k2': v2}
</code></pre>
<p>请注意,它不会显示<code>nested messages</code>、<code>enum</code>和<code>oneof</code>,您可以很容易地用逻辑检查它们</p>
<pre><code>config_pb2.py.TopConfig().DESCRIPTOR.oneofs # True if it has oneofs type
config_pb2.py.TopConfig().DESCRIPTOR.enum_types # True if it has enum type
</code></pre>
<p>希望这篇文章能帮助其他人</p>