使用python simple-salesforce访问Salesforce元数据

log*_*eyg 5 python salesforce simple-salesforce

在阅读simple-salesforce文档时,它仅显示使用诸如此类的硬编码方法访问对象元数据:

sf.Contact.metadata()
Run Code Online (Sandbox Code Playgroud)

没有办法做这样的事情吗?

sf["Contact"].metadata()
Run Code Online (Sandbox Code Playgroud)

我想遍历对象列表并检索所有这些对象字段,但是由于上述限制,看来这是不可能的。

for obj in objects:
    fields = [x["name"] for x in sf[obj].describe()["fields"]]
    # processing for each object
Run Code Online (Sandbox Code Playgroud)

有什么方法可以使用字符串参数而不是硬编码值来访问对象元数据?

Rob*_*vis 5

SF。接口实际上是调用Salesforce类中的get_attr方法。

get_attr返回 SFType(name, self.session_id, self.sf_instance, self.sf_version, self.proxies) 的值。

您可以通过以下方式执行您想要的操作:

from simple_salesforce import SFType
....
sf_object = ['Case', 'Contact', 'Account', 'Custom1__c', 'Custom2__c']
for each in sf_object:
    SFType(each, sf.session_id, sf.sf_instance, sf.sf_version, sf.proxies).metadata()
Run Code Online (Sandbox Code Playgroud)

希望有帮助。