首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError:无法连接“str”和“SFType”对象(simple-salesforce)

TypeError:无法连接“str”和“SFType”对象(simple-salesforce)
EN

Stack Overflow用户
提问于 2015-11-13 10:21:36
回答 2查看 846关注 0票数 0

我的项目是提取所有salesforce表的内容,包括自定义的表。为此,我需要知道列(字段)的名称,因为SOQL不支持"SELECT * from TABLENAME“。

使用simple-salesforce,我知道以下是可行的:

代码语言:javascript
复制
sf = Salesforce(username='foo@bar.com', password='abcd', security_token='ZCdsdPdE4eI2DZMl5gwCFIGEFU')

    field_data = sf.Contact.describe()["fields"]

但我的问题是,我需要在上面的实际方法调用中参数化"Contact“字符串,这样我就可以为我不知道名称的对象调用这个方法(即没有在标准的salesforce中定义)。例如,我需要做的是:

代码语言:javascript
复制
    field_data = sf.CustomTableName.describe()["fields"]

当我尝试使用SFType类时:

代码语言:javascript
复制
contact = SFType('Contact',sf.sessionid,sf.sf_instance)
f = contact.describe()

我得到了这个错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "./simple-example.py", line 13, in <module>
    f = contact.describe()["fields"]
  File "/Library/Python/2.7/site-packages/simple_salesforce/api.py", line 430, in describe
    result = self._call_salesforce('GET', self.base_url + 'describe')
  File "/Library/Python/2.7/site-packages/simple_salesforce/api.py", line 570, in _call_salesforce
    'Authorization': 'Bearer ' + self.session_id,
TypeError: cannot concatenate 'str' and 'SFType' objects

提前感谢您的建议。

EN

回答 2

Stack Overflow用户

发布于 2015-11-13 11:06:14

如果您查看source code for simple-salesforce (截至2015-11-12),您将看到在Salesforce()init()中,我们将会话设置为self.session_id,将实例设置为self.sf_instance

在本例中,您使用的是sf.sessionid,并且由于simple-salesforce被设置为每当Salesforce()上不存在方法或属性时返回SFType()对象(而sessionidSalesforce()上也不存在),因此您实际上是在将SFType()对象插入到SFType()的初始化中

SFType.__init__()不会执行任何形式的验证来确认您是否将字符串作为参数传递,因此您得到的错误来自simple-salesforce试图使用您作为字符串传递的SFType()对象。

尝试以下代码:

代码语言:javascript
复制
contact = SFType('Contact', sf.session_id, sf.sf_instance)
f = contact.describe()
票数 4
EN

Stack Overflow用户

发布于 2018-10-13 09:47:49

我遇到了同样的问题,似乎已经通过从instance_url中删除协议(“https://"”)解决了这个问题。

如下所示:

代码语言:javascript
复制
contact = SFType(sf_object, session_id, instance_url.replace("https://",''))
contact.describe()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33684928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档