簡體   English   中英

有序嵌套字典到Python列表的列表理解

[英]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__rrecord的鍵。

我認為您想要的是:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM