[英]List Comprehension for Ordered Nested Dictionary to Python List
我正在通過python包Simple_Salesforce.
查詢Salesforce Simple_Salesforce.
結果作為OrderdDict.
返回OrderdDict.
我想將記錄轉換為簡單的列表列表(盡管在示例中只有1條記錄)。 這很容易做到,除了在此示例中,字段Approval_Date__c
通過SOQL連接來自相關表。 這似乎作為嵌套的OrderedDict返回。 我無法生成包含此值的列表。 我收到KeyError: 'Opportunity__r'
我的代碼:
import collections
orderedDict = collections.OrderedDict()
from collections import OrderedDict
query_results = OrderedDict([(u'totalSize', 1), (u'done', True), (u'records', [OrderedDict([(u'attributes', OrderedDict([(u'type', Orders__c'), (u'url', u'someurl')])), (u'Id', u'a4T13000000sdfd'), (u'Order_Type__c', u'Standard'), (u'Opportunity__c', u'006130000145451245'), (u'Opportunity__r', OrderedDict([(u'attributes', OrderedDict([(u'type', u'Opportunity'), (u'url', u'someurl1')])), (u'Approval_Date__c', u'2014-12-31')]))])])])
List_Results = [[record['Id'], record['Order_Type__c'], [[record['Approval_Date__c']] for record in query_results['Opportunity__r']]] for record in query_results['records']]
print List_Results
所需結果:
[[u'a4T13000000sdfd', u'Standard', u'2014-12-31']]
簡單對話,從嵌套的OrderedDict中排除該字段以證明其有效:
List_Results = [[record['Id'], record['Order_Type__c']] for record in query_results['records']]
之所以得到鍵錯誤,是因為您試圖在query_results中查找Opportunity__r
,而后者沒有Opportunity__r
鍵。 相反, Opportunity__r
是record
的鍵。
我認為您想要的是:
List_Results = [[record['Id'], record['Order_Type__c'], record['Opportunity__r']['Approval_Date__c']] for record in query_results['records']]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.