Python Simple Salesforce Select AS不起作用

时间:2019-03-08 07:17:49

标签: python-3.x simple-salesforce

我正在尝试使用SELECT ... AS调用来使用Python Salesforce API重命名查询输出中的列,并且抛出以下错误:

 ... unexpected token: 'AS'", 'errorCode': 'MALFORMED_QUERY'}

到目前为止,大多数来自SOQL的本地语言调用都已在API中起作用,从here看来,SELECT ... AS是有效的SOQL。

查询大纲:

from simple_salesforce import Salesforce
sf = Salesforce(username=myusername, password=mypassword, security_token=mytoken)
query = "select closedate as Date from opportunity"
query_list = sf.query_all(query)['records']

修改 即使按照以上链接的建议将新列名放在引号内,错误仍然存​​在:

query = "select closedate as \"Date\" from Opportunity"

谢谢

2 个答案:

答案 0 :(得分:0)

语法似乎不正确。

根据此处记录的别名表示法尝试query = "select closedate <insert alias> from Opportunity"https://developer.salesforce.com/docs/atlas.en-us.soql_sosl.meta/soql_sosl/sforce_api_calls_soql_alias.htm

答案 1 :(得分:0)

正如Terminus所述,在大多数情况下,包括您在内,SOQL都无法在SOQL中使用SOQL字段别名。我看到别名在SOQL中起作用的唯一情况是在聚合查询中。例如,在顶点中,您可以编写:

AggregateResult myResult = [SELECT count(Id) SpecialName FROM Contact];
system.debug(myResult);

并接收结果:

DEBUG|AggregateResult:{SpecialName=1630}

在Python中,通过simple-salesforce看起来像这样:

sf.query_all('SELECT count(Id) SpecialName FROM Contact')

结果:

   OrderedDict([('totalSize', 1),
             ('done', True),
             ('records',
              [OrderedDict([('attributes',
                             OrderedDict([('type', 'AggregateResult')])),
                            ('SpecialName', 6587)])])])

如果此回答您的问题,请标记为已回答。