当使用Beam IO ReadFromPubSub模块时,是否可以在Python中提取具有属性的消息?它';不清楚它是否得到支持

当使用Beam IO ReadFromPubSub模块时,是否可以在Python中提取具有属性的消息?它';不清楚它是否得到支持,python,google-cloud-pubsub,apache-beam-io,Python,Google Cloud Pubsub,Apache Beam Io,尝试将具有存储在PubSub中的属性的消息拉入Beam管道。我想知道是否已经添加了对Python的支持,这就是我无法阅读它们的原因。我看到它存在于Java中 pipeline_options = PipelineOptions() pipeline_options.view_as(StandardOptions).streaming = True pipeline = beam.Pipeline(options=pipeline_options) messages = (pipeline |

尝试将具有存储在PubSub中的属性的消息拉入Beam管道。我想知道是否已经添加了对Python的支持,这就是我无法阅读它们的原因。我看到它存在于Java中

pipeline_options = PipelineOptions()
pipeline_options.view_as(StandardOptions).streaming = True

pipeline = beam.Pipeline(options=pipeline_options)
messages = (pipeline | beam.io.ReadFromPubSub(subscription=subscription_name).with_output_types(bytes))

def printattr(element):
    print(element.attributes)


lines = messages | 'printattr' >> beam.Map(printattr)

result = pipeline.run()
result.wait_until_finish()
预计能够列出属性-数据:

b'Message number 1109'
-     attributes: {
-       "_comments": "nan",
-       "_direction": "SE",
-       "_fromst": "Harlem",
-       "_last_updt": "2019-03-20 21:11:02.0",
-       "_length": "0.56",
-       "_lif_lat": "41.9809967484",
-       "_lit_lat": "41.9787314076",
-       "_lit_lon": "-87.7964600566",
-       "_strheading": "W",
-       "_tost": "Oak Park",

,但我似乎只能访问存储在数据字段中的信息,而不能访问属性。

查看文档后,我可以看到要传递到ReadFromPubSub的附加参数

需要设置'with_attributes=True',否则,只需获取数据字段


希望这能帮助其他可能陷入困境或只是疲劳的人:)

我也为这个错误挣扎了一天,然后我找到了这篇文章。谢谢