我正在尝试使用 Python 发布者客户端将消息发布到Google Cloud Platform 上的Pub/Sub 服务。
我有一个包含多张工作表的 excel 文件。每个工作表都有不同数量的列。对于每个工作表,我需要将每一行作为单独的消息发布到云上的 PubSub 服务。
对于具有 4 列的工作表,我使用以下步骤参考文档中的示例代码:
publisher从google.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)