Python 如何解析json列表?
我有一个json列表:Python 如何解析json列表?,python,json,Python,Json,我有一个json列表: tcp_packet = {'green': [], 'red': [{'arm_id': 2, 'pptl_id': [1]}, {'arm_id': 1, 'pptl_id': [1]}]} 我需要检查arm_id是否存在于“红色”中 目前,我必须循环查看tcp\u数据包['red'],以确定arm\u id=2是否存在 for i in tcp_packet[color]: if '2' in i.keys(): do something 这
tcp_packet = {'green': [], 'red': [{'arm_id': 2, 'pptl_id': [1]}, {'arm_id': 1, 'pptl_id': [1]}]}
我需要检查arm_id是否存在于“红色”中
目前,我必须循环查看tcp\u数据包['red']
,以确定arm\u id=2
是否存在
for i in tcp_packet[color]:
if '2' in i.keys():
do something
这个问题有一个简单的解决方案吗?你的问题有点不清楚,但这就是你想要的吗
do_something() if 2 in [x.get('arm_id') for x in tcp_packet['red']] else None
>>> 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
我知道你的理解力。但是,如果不使用循环,就不能这样做吗?您必须通过tcp_数据包['red']的值进行循环,因为它是一个列表。在if语句中,我已将2固定为整数,而不是字符串。还可以使用x.get('arm_id'),这样,如果dict中没有arm_id,您就不会得到一个keyrerror。这是一个要求吗?