我正在使用Python Simple-Salesforce通过SOQL查询数据。我知道SOQL语法不支持“ SELECT *”,因此我想创建一个Python脚本来收集所有字段的字符串列表,以插入到SELECT语句中。以下是我描述帐户对象的方式:
from simple_salesforce import Salesforce
from simple_salesforce import SFType
#(credentials hidden)
sf = Salesforce(username=username, password=password,
security_token=security_token, sandbox=True,
client_id='mwheeler App')
desc = sf.Account.describe()
print(desc)
如何从下面显示的“有序字典”中将字段名称提取到字符串列表中?
desc:
OrderedDict([[('actionOverrides',[]),('activateable',False),('childRelationships',[OrderedDict([('cascadeDelete',False),('childSObject','Account')),('deprecatedAndHidden ',False),('field','ParentId'),('junctionIdListNames,[]),('junctionReferenceTo',[]),('relationshipName','ChildAccounts'),('restrictedDelete',False) ]),OrderedDict([[('cascadeDelete',True),('childSObject','AccountCleanInfo'),('deprecatedAndHidden',False),('field','AccountId'),......
我将使用字符串列表来选择所有字段:
query = sf.query_all("SELECT string_list FROM Account")
如何从下面显示的“有序字典”中将字段名称提取到字符串列表中?
我已经扩展了您的代码以包括解决方案
from simple_salesforce import Salesforce
#(credentials hidden)
sf = Salesforce(username=username, password=password,
security_token=security_token, sandbox=True,
client_id='mwheeler App')
desc = sf.Account.describe()
# Below is what you need
field_names = [field['name'] for field in desc['fields']]
soql = "SELECT {} FROM Account".format(','.join(field_names))
results = sf.query_all(soql)
# Alternative method to retrieve results
# I don't have any recommendation which to use
results = sf.bulk.Account.query(soql)
我意识到这个问题是在不久前发布的,只是希望它有一个完整的解决方案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句