试图找出一种方法,让简单的销售人员只为我提供列表中的所有字段名称。我想创建 soql 查询,其功能与 sql 中的 Select * 几乎相同。
对于对象中的 obj:
fields = [x["name"] for x in sf[obj].describe()["fields"]]
谢谢
最佳答案
对象中的字段名称列表可以通过以下方式实现:
def getObjectFields(obj):
fields = getattr(sf,obj).describe()['fields']
flist = [i['name'] for i in fields]
return flist
getObjectFields('Contact')
获得 SELECT *
效果的查询将如下所示:
sf.query_all('SELECT {} FROM Contact LIMIT 10'.format(','.join(getObjectFields('Contact'))))
相关说明:
如果有帮助,可以按如下方式实现标签/名称对的字典:
def getObjectFieldsDict(obj):
fields = getattr(sf,obj).describe()['fields']
fdict = {}
for i in fields:
fdict[i['label']] = i['name']
return fdict
getObjectFieldsDict('Contact')
我发现这对于找出带有不遵循标准格式的标签的字段名称很有用(即“我最喜欢的网站”字段标签对应“Favorite_Website__c”字段名称)
关于python - 问 : Simple-Salesforce make a dynamic soql query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46649495/