用python中的变量替换链式方法

时间:2018-02-05 15:18:43

标签: python pandas dictionary methods salesforce

我有一个simple_salesforce包中的函数,

sf = Salesforce(username, pass, key)

要更新salesforce数据库中的对象,请通过以下方式调用sf:

sf.bulk.object.update(data)

例如,account是salesforce中的原生客户帐户对象,因此您需要提供data来更新帐户,如下所示:

sf.bulk.account.update(data)

我想知道在python中是否有办法将链的特定部分设置为参数。

我想做什么:

def update_sf(object, data):
    sf.bulk.object.update(data)

我可以这样打电话:

update_sf('account', data)

我能想到的另一种方法是创建一个包含实例中对象的数十个值的字典

{'account':sf.bulk.account.update(),
 'contact':sf.bulk.contact.update()}

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:2)

您可以使用内置函数getattr来获取所需的实体:

>>> getattr(sf.bulk, object).update(data)

为了能够动态选择操作(插入,更新,删除),您可以链接getattr

>>> getattr(getattr(sf.bulk, object),operation)