我在topic.thrift文件中定义了一个联合类型,并生成了gen-py。
代码如下:
union Generic{
1: string s,
2: bool b,
3: i64 i,
4: double d}
struct Article{
1: string title,
2: string content,
3: Generic test}
以及类似这样的序列化代码:
transport_out = TTransport.TMemoryBuffer()
protocol_out = TBinaryProtocol.TBinaryProtocol(transport_out)
parse_item.write(protocol_out)
bytes = transport_out.getvalue()
parse_item 是指一篇文章的对象:
parse_item = Article()
parse_item.test = 1
无论是字符串、整数、布尔值还是浮点数,赋给parse_item.test都会出现以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "gen-py/topic/ttypes.py", line 189, in write
self.test.write(oprot)
AttributeError: 'str' object has no attribute 'write'
我真的不知道为什么?有人有想法吗?