我收到以下属性错误
AttributeError:“ Struct”对象没有属性“ fields”
如果我想使用google.protobuf.internal.well_known_types.Struct
的update
方法
Protobuf版本是3.71。
MWE :
from google.protobuf.internal.well_known_types import Struct
s = Struct()
s.update({"key": "value"})
此问题的更大范围是,我想在python中创建一个带有google.protobuf.Struct
字段的消息,以发送给传递给生成的RPC客户端。
有人可以帮忙吗?
答案 0 :(得分:1)
好的,写完问题后我立即发现了如何做。将答案留给可能最终遇到此问题的其他人。
我们必须从Struct
导入google.protobuf.struct_pb2
。这样update
就可以正常工作。
因此
from google.protobuf.struct_pb2 import Struct
s = Struct()
s.update({"key": "value"})
将返回具有表示形式的对象
fields {
key: "key"
value {
string_value: "value"
}
}
答案 1 :(得分:0)
应该简单
from google.protobuf.struct_pb2 import Struct
from google.protobuf import json_format
s = Struct()
s.update({"key": "value"})
json_format.MessageToDict(s)