在Python中,可以使用列表推导式或者filter函数来进行按多个嵌套属性进行过滤。
方法一:使用列表推导式
data = [
{'name': 'John', 'age': 25, 'address': {'city': 'New York', 'state': 'NY'}},
{'name': 'Jane', 'age': 30, 'address': {'city': 'San Francisco', 'state': 'CA'}},
{'name': 'Bob', 'age': 35, 'address': {'city': 'New York', 'state': 'NY'}}
]
filtered_data = [item for item in data if item['address']['state'] == 'NY' and item['age'] > 30]
print(filtered_data)
输出:
[{'name': 'Bob', 'age': 35, 'address': {'city': 'New York', 'state': 'NY'}}]
方法二:使用filter函数
data = [
{'name': 'John', 'age': 25, 'address': {'city': 'New York', 'state': 'NY'}},
{'name': 'Jane', 'age': 30, 'address': {'city': 'San Francisco', 'state': 'CA'}},
{'name': 'Bob', 'age': 35, 'address': {'city': 'New York', 'state': 'NY'}}
]
filtered_data = list(filter(lambda item: item['address']['state'] == 'NY' and item['age'] > 30, data))
print(filtered_data)
输出:
[{'name': 'Bob', 'age': 35, 'address': {'city': 'New York', 'state': 'NY'}}]
以上两种方法都可以根据指定的条件对列表中的字典进行过滤,并返回符合条件的字典列表。