【问题标题】:Passing a variable from a list as part of calling a function作为调用函数的一部分从列表中传递变量
【发布时间】:2015-06-11 20:11:42
【问题描述】:

我正在使用SimpleSalesforce 并想使用describe() 功能。一个例子是sf.Contact.describe() 来描述联系人记录。我想遍历列表中的多条记录,但我不确定如何传入一个变量来代替联系人。

Objects = ['Contact','Opportunity']
for object in Objects:
    print sf.object.describe()

这会产生以下错误:

simple_salesforce.api.SalesforceResourceNotFound: Resource object Not Found. Response content: [{u'errorCode': u'NOT_FOUND', u'message': u'The requested resource does not exist'}]

【问题讨论】:

  • 请提出问题。比较好理解。你想问什么不清楚。以对其他人也有帮助的方式发布详细信息:)

标签: python python-2.7 soap salesforce


【解决方案1】:

object 在本例中是一个字符串。您可以使用getattr检索属性

Objects = ["Contact", "Opportunity"]
for object in Objects: # object is a string.
    print getattr(sf, object).describe()

【讨论】:

  • 这里还应该提到Objectsobject 不是好名字。见PEP-8#Naming
【解决方案2】:

您可以创建一个对象列表而不是字符串列表,然后您可以调用这些对象的 describe 方法

Objects = [sf.Contact, sf.Opportunity]
for object in Objects:
    print object.describe()

【讨论】:

  • 如果您从打印行中删除 sf. 并修复第 1 行中的错字,则此方法有效:)。谢谢,
  • @user2242044 时间不早了,我没咖啡了:)
【解决方案3】:
Objects = ['Contact','Opportunity']
for object in Objects:
    if object == 'Contact':
        print sf.Contact.describe()
    elif object == 'Opportunity':
        print sf.Opportunity.describe()

【讨论】:

  • 这对于简化示例非常有用,但实际上它可能会遍历数百个元素的列表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-03
  • 1970-01-01
  • 2013-06-03
  • 1970-01-01
  • 2020-10-02
  • 1970-01-01
相关资源
最近更新 更多