小编Ish*_*pal的帖子

python 客户端的 PubSub publish() 函数中的动态属性数

我正在尝试使用 Python 发布者客户端将消息发布到Google Cloud Platform 上Pub/Sub 服务

问题描述:

我有一个包含多张工作表的 excel 文件。每个工作表都有不同数量的列。对于每个工作表,我需要将每一行作为单独的消息发布到云上的 PubSub 服务。

对于具有 4 列的工作表,我使用以下步骤参考文档中的示例代码:

  • 创建一个publishergoogle.cloud.pubsub_v1.PublisherClient()类调用的对象
  • 使用publisher.publish()云上发送数据到我的topic的方法
  • 在该publish()方法的参数中,我将每一列视为消息中的一个属性,如以下代码行所示(该行用于从一行发布):
    future = publisher.publish(topic_path, data, column1 = columnvalue1 , column2 = columnvalue2) 
    
    Run Code Online (Sandbox Code Playgroud)

题:

在我正在编写的程序中,我希望从用户指定的工作表中发布消息。由于不同的工作表具有不同的列数,我想知道是否有任何方法可以publish()根据该特定工作表中的列数动态更改函数中的参数数量?

我的尝试;

我尝试使用 if-else 语句使用蛮力方法。例如,三个工作表分别具有 2,3 和 4 列;我从 Excel 文件中将指定的工作表读取到一个 Pandas 数据框中。然后我遍历每一行并发布如下内容:

for i,row in df.iterrows():
    # <All other relevant code and operations>
 
    if (args.sheet == 'Sheet1'):
           future = publisher.publish(topic_path, data, column1 …
Run Code Online (Sandbox Code Playgroud)

python google-cloud-platform google-cloud-pubsub

0
推荐指数
1
解决办法
215
查看次数