-1

在使用简单的 salesforce 库进行批量 API 调用时,我将 Python 元组作为 SQL 参数传递。如果我的元组中包含多个元素,则脚本可以正常工作,但是,IndexError: list index out of range如果我的元组只有一个元素,它会给我。. 我的代码如下:

id_params_tuple = ('0060z000023HFr4AAG',)
sql = "SELECT Id FROM OpportunityLineItem where Opportunity_ID__c IN {}".format(id_params_tuple)
opp_products_raw_data = sf.bulk.OpportunityLineItem.query(sql)
print(opp_products_raw_data)

我该如何解决这个问题?

4

2 回答 2

-1

尝试这个-

#id_params_tuple = ('0060z000023HFr4AAG',)
id_params_list = ['0060z000023HFr4AAG']
list_of_tuple = [tuple([value]) for value in id_params_list]
cond = (', '.join("'{}'".format(t[0]) for t in list_of_tuple))
sql = "SELECT Id FROM OpportunityLineItem where Opportunity_ID__c IN ({})".format(cond)
opp_products_raw_data = sf.bulk.OpportunityLineItem.query(sql)
print(sql)
于 2021-08-16T21:11:35.110 回答
-1

您在 IN 子句中缺少括号。在第二行试试这个。

sql = "SELECT Id FROM OpportunityLineItem where Opportunity_ID__c IN ({})".format(id_params_tuple)
于 2020-06-01T19:01:09.953 回答