10

Python Simple-Salesforce を使用して、SOQL 経由でデータを照会しています。「SELECT *」は SOQL 構文でサポートされていないことを知っているので、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)

以下に示す順序付き辞書からフィールド名を文字列リストに抽出するにはどうすればよいですか?

説明:

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")
4

3 に答える 3

0
# provide credential information for Salesforce Session Object
username = 'username'
password = 'password'
security_token = 'security_token'
domain = 'login'

# Create salesforce session
sf = Salesforce(username=username,
                password=password,
                security_token=security_token,
                domain=domain)

# Get list of fields for TABLE
fields = [field.get('name') for field in getattr(sf, TABLE).describe().get('fields')]

# Concat fields ready for inclusion in query string
fields = ',\n'.join(fields)

# Convert into SOQL query
soql = f"SELECT \n{fields} \nFROM {TABLE}"
于 2021-07-30T12:13:37.740 に答える