4

将对象动态添加到 Simple_Salesforce 的批量查询作业。

我不确定如何将变量传递给sf.bulk."Object".query.

我希望能够将一个对象说“帐户”传递给定义,它会进行批量查询sf.bulk.Account.query("SOQL...")

sf = Salesforce(username=sf_username, password=sf_password, security_token=sf_token)

def SOQL(table):
    qryResult = sf.bulk.`table`.query('SELECT Id FROM ' + table)

SOQL("Account")

我希望 python 把它翻译成sf.bulk.Account.query("SELECT Id FROM Account")

4

1 回答 1

5

您可以直接调用sf.bulk's__getattr__方法

sf = Salesforce(username=sf_username, password=sf_password, security_token=sf_token)

def SOQL(table):
    return sf.bulk.__getattr__(table).query('SELECT Id FROM ' + table)

result = SOQL("Account")

我添加了一个return原因,我认为您会想要结果(我意识到这可能是一个最小的示例,但仍然如此)。

为什么这样有效:

基本上,在幕后,当你打电话时sf.bulk.Account,python 正在sf.bulk.__getattr__("Account")为你打电话。(这是一个长话短说;深入研究 python和链接的源代码以获得更多信息)

于 2019-05-12T01:54:37.140 回答