从协议缓冲区创建一个python字典,像对象用于熊猫
我当前连接到提供协议缓冲区的服务器。 我可能会收到大量的消息。 目前,我读取协议缓冲区并将其转换为Pandas DataFrame(通常不是必需步骤,但Pandas提供用于分析数据集的好工具)的过程是:
pandas.DataFrame.from_records
获取DataFrame 这很好,但是,由于我从protobuf中读取了大量的消息,转换为字典,然后转换为熊猫效率非常低。 我的问题是:是否有可能创建一个可以使python protobuf对象看起来像字典的类? 也就是,删除第2步。任何引用或伪代码都会有帮助。
你可能想检查ProtoText python包。 它提供了就地类似于字典的操作来访问您的protobuf对象。
用法示例:假设您有一个python protobuf对象person_obj
。
import ProtoText
print person_obj['name'] # print out the person_obj.name
person_obj['name'] = 'David' # set the attribute 'name' to 'David'
# again set the attribute 'name' to 'David' but in batch mode
person_obj.update({'name': 'David'})
print ('name' in person_obj) # print whether the 'name' attribute is set in person_obj
# the 'in' operator is better than the google implementation HasField function
# in the sense that it won't raise Exception even if the field is not defined
链接地址: http://www.djcxy.com/p/48335.html
上一篇: creating a python dictionary like object from protocol buffers for use in pandas