我有一个json列表:
tcp_packet = {'green': [], 'red': [{'arm_id': 2, 'pptl_id': [1]}, {'arm_id': 1, 'pptl_id': [1]}]}
我需要检查arm_id是否存在于'red'中?
目前我必须循环tcp_packet['red']
以确定arm_id = 2
是否存在?
for i in tcp_packet[color]:
if '2' in i.keys():
do something
对此有一个单行解决方案吗?
答案 0 :(得分:0)
do_something() if 2 in [x.get('arm_id') for x in tcp_packet['red']] else None
答案 1 :(得分:0)
你的问题有点不清楚,但这是你在找什么?
>>> tcp_packet = {'green': [], 'red': [{'arm_id': 2, 'pptl_id': [1]}, {'arm_id': 1, 'pptl_id': [1]}]}
>>> any((('arm_id', 2) in i.iteritems()) for i in tcp_packet['green'])
False
>>> any((('arm_id', 2) in i.iteritems()) for i in tcp_packet['red'])
True