我有一本字典如下:
transactions = {'366184179': {'start_ffe_event': '2019-12-25 19:40:47.886',
'tx_code': '366184179',
'celular': '57310XXXXXXX',
'AID': '121140',
'ffe_value': '2000.0',
'ITEL_type': 'ITELFlow',
'OfferId': '87253',
'partnerId': '10280',
'msg_ffe_event': '2019-12-25 19:40:48.858',
'ffe_message': 'SUCCESS response from connector',
'XML_event': '2019-12-25 19:40:48.858',
'XML_response': 'Transaction successful'},
'366236151':{'start_ffe_event': '2019-12-26 09:01:06.594',
'tx_code': '366236151',
'celular': '573002003288',
'AID': '121410',
'ffe_value': None,
'ITEL_type': 'DataSmsActivationFlow',
'OfferId': '87461',
'partnerId': '10280',
'msg_ffe_event': None,
'ffe_message': None,
'XML_event': None,
'XML_response': None}
...}
inners键msg_ffe_event, ffe_message, XML_evento and XML_response
可以是None
我想筛选所有符合此条件的密钥。你知道吗
我试着:
check_keys = ['msg_ffe_event', 'ffe_message', 'XML_event', 'XML_response']
element = lambda elem: all(e is None for e in [elem[key] for key in elem.keys() if key in check_keys])
list(filter(element, transactions))
当我使用element(transactions[*valid_key*])
时,element函数可以工作,但是这里使用filter函数会产生一个错误:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-60-d7b33ef30b22> in <module>
1 check_keys = ['msg_ffe_event', 'ffe_message', 'XML_event', 'XML_response']
2 element = lambda elem: all(e is None for e in [elem[key] for key in elem.keys() if key in check_keys])
----> 3 list(filter(element, transactions))
4 #element(transactions['366930594'])
<ipython-input-60-d7b33ef30b22> in <lambda>(elem)
1 check_keys = ['msg_ffe_event', 'ffe_message', 'XML_event', 'XML_response']
----> 2 element = lambda elem: all(e is None for e in [elem[key] for key in elem.keys() if key in check_keys])
3 list(filter(element, transactions))
4 #element(transactions['366930594'])
AttributeError: 'str' object has no attribute 'keys'
我想要的输出是:
{'366236151':{'start_ffe_event': '2019-12-26 09:01:06.594',
'tx_code': '366236151',
'celular': '573002003288',
'AID': '121410',
'ffe_value': None,
'ITEL_type': 'DataSmsActivationFlow',
'OfferId': '87461',
'partnerId': '10280',
'msg_ffe_event': None,
'ffe_message': None,
'XML_event': None,
'XML_response': None}
,...}
这里有另一种方法来实现你想要的,这将符合你的预期输出。你知道吗
全部无
有几件事要你查。你知道吗
transaction.items()
https://www.geeksforgeeks.org/python-dictionary-items-method/此解决方案与您的答案之间的区别在于,结果将具有与您开始时相同的字典结构。你知道吗
它可能是你想要的,也可能不是你想要的,但是它是你想要的输出。你知道吗
列表(过滤器(元件,事务处理.值()))
tks@Blorgbeard公司
相关问题 更多 >
编程相关推荐