Hướng dẫn python json filter(lambda) - bộ lọc python json (lambda)

Đó là mảng JSON hiện tại tôi có. Tôi muốn nhận tất cả các đối tượng JSON loại = 1

Show

trước khi lọc:

[ 
        {
            "type": 1
            "name" : "name 1",
        }, 
        {
            "type": 2
            "name" : "name 2",
        }, 
        {
            "type": 1
            "name" : "name 3"
        }, 
]

Sau khi lọc:

[ 
        {
            "type": 1
            "name" : "name 1",
        }, 
        {
            "type": 1
            "name" : "name 3"
        }, 
]

xin vui lòng giúp đỡ.

Đã hỏi ngày 28 tháng 11 năm 2014 lúc 13:36Nov 28, 2014 at 13:36

Hướng dẫn python json filter(lambda) - bộ lọc python json (lambda)

Majid Zandimajid ZandiMajid Zandi

4.1815 Huy hiệu vàng21 Huy hiệu bạc29 Huy hiệu đồng5 gold badges21 silver badges29 bronze badges

3

Đoạn mã sau đây thực hiện chính xác những gì bạn muốn, nhưng hãy cẩn thận rằng đầu vào của bạn (như được viết trong câu hỏi) không phải là chuỗi JSON hợp lệ, bạn có thể kiểm tra tại đây: http://jsonlint.com.

import json

input_json = """
[
    {
        "type": "1",
        "name": "name 1"
    },
    {
        "type": "2",
        "name": "name 2"
    },
    {
        "type": "1",
        "name": "name 3"
    }
]"""

# Transform json input to python objects
input_dict = json.loads(input_json)

# Filter python objects with list comprehensions
output_dict = [x for x in input_dict if x['type'] == '1']

# Transform python object back into json
output_json = json.dumps(output_dict)

# Show json
print output_json

Đã trả lời ngày 28 tháng 11 năm 2014 lúc 14:00Nov 28, 2014 at 14:00

Hướng dẫn python json filter(lambda) - bộ lọc python json (lambda)

2

Đơn giản

print [obj for obj in dict if(obj['type'] == 1)] 

Liên kết ví dụ.

Đã trả lời ngày 28 tháng 11 năm 2014 lúc 13:57Nov 28, 2014 at 13:57

Hướng dẫn python json filter(lambda) - bộ lọc python json (lambda)

Andy Eccaandy ECCAAndy Ecca

1.88914 Huy hiệu bạc14 Huy hiệu đồng14 silver badges14 bronze badges

Phương thức bộ lọc () lọc trình tự đã cho với sự trợ giúp của hàm kiểm tra từng phần tử trong chuỗi là đúng hay không. Tài liệu cho bộ lọc

>>> obj=[
...     {
...         "type": 1,
...         "name": "name 1"
...     },
...     {
...         "type": 2,
...         "name": "name 2"
...     },
...     {
...         "type": 1,
...         "name": "name 3"
...     }
... ]
>>> filter(lambda x: x['type'] == 1, obj)
<filter object at 0x7fd98805ca00>
>>> list(filter(lambda x: x['type'] == 1, obj))
[{'type': 1, 'name': 'name 1'}, {'type': 1, 'name': 'name 3'}]
>>> list(filter(lambda x: x['type'] == 2, obj))
[{'type': 2, 'name': 'name 2'}]

Đã trả lời ngày 25 tháng 3 năm 2021 lúc 18:15Mar 25, 2021 at 18:15

N n k tejan n k tejaN N K Teja

1271 Huy hiệu bạc7 Huy hiệu đồng1 silver badge7 bronze badges

Kết Luận

Dưới đây mình đã giới thiệu với các bạn về [ { "type": 1 "name" : "name 1", }, { "type": 1 "name" : "name 3" }, ] 4 khái niệm, các xử dụng và một số ví dụ sử dụng Lambda Function trong Python. Hi vọng các bạn thích bài viết này. Nếu có bất kì thắc mắc gì hãy để lại comment ở phía dưới nhé.

Tham Khảo chi tiết hơn


Chào các bạn trong bài viết này, mình sẽ giới thiệu với các bạn về [ { "type": 1 "name" : "name 1", }, { "type": 1 "name" : "name 3" }, ] 4 còn được gọi là các hàm ẩn danh.Mình sẽ giải thích cho các bạn hiểu về khái niệm của chúng là gì, cú pháp và cách xử dụng của chúng. Các bạn cùng tìm hiểu trong bài viết của mình nhé!

Khái niệm Lambda Function(hàm ẩn danh) trong Python

Trong Python, một hàm ẩn danh là một hàm được định nghĩa mà không có tên. Trong khi các hàm bình thường sẽ được định nghĩa bằng các từ khóa
[ 
        {
            "type": 1
            "name" : "name 1",
        }, 
        {
            "type": 1
            "name" : "name 3"
        }, 
]
5 trong Python, thì các hàm ẩn danh sẽ được định nghĩa bằng từ khóa
[ 
        {
            "type": 1
            "name" : "name 1",
        }, 
        {
            "type": 1
            "name" : "name 3"
        }, 
]
6. Vì vậy các hàm ẩn danh còn được gọi là các
[ 
        {
            "type": 1
            "name" : "name 1",
        }, 
        {
            "type": 1
            "name" : "name 3"
        }, 
]
4.

lambda arguments: expression

Làm cách nào xử dụng Lambda Function trong Python?


Một
[ 
        {
            "type": 1
            "name" : "name 1",
        }, 
        {
            "type": 1
            "name" : "name 3"
        }, 
]
8 trong Python sẽ có cú pháp như sau:

Cú pháp của Lambda Function trong python

#Ví dụ về việc sử dụng các Lambda Function trong Python
double = lambda x: x * 2

print(double(5))

Kết quả:

10

Các hàm lambda có thể có bất kỳ số đối số nào nhưng chỉ có một biểu thức. Biểu thức được đánh giá và trả về. Các

[ 
        {
            "type": 1
            "name" : "name 1",
        }, 
        {
            "type": 1
            "name" : "name 3"
        }, 
]
8 có thể được sử dụng ở bất cứ chỗ nào yêu cầu các đối tượng hàm.

Ví dụ về Lambda Function trong python

double = lambda x: x * 2

Dưới đây là một ví dụ về

[ 
        {
            "type": 1
            "name" : "name 1",
        }, 
        {
            "type": 1
            "name" : "name 3"
        }, 
]
8 để xử lý việc tăng gấp đôi giá trị đầu vào:

def double(x):
   return x * 2

Ở ví dụ trên import json input_json = """ [ { "type": "1", "name": "name 1" }, { "type": "2", "name": "name 2" }, { "type": "1", "name": "name 3" } ]""" # Transform json input to python objects input_dict = json.loads(input_json) # Filter python objects with list comprehensions output_dict = [x for x in input_dict if x['type'] == '1'] # Transform python object back into json output_json = json.dumps(output_dict) # Show json print output_json 1 sẽ là hàm lamba. Ở đây import json input_json = """ [ { "type": "1", "name": "name 1" }, { "type": "2", "name": "name 2" }, { "type": "1", "name": "name 3" } ]""" # Transform json input to python objects input_dict = json.loads(input_json) # Filter python objects with list comprehensions output_dict = [x for x in input_dict if x['type'] == '1'] # Transform python object back into json output_json = json.dumps(output_dict) # Show json print output_json 2 là đối số vào import json input_json = """ [ { "type": "1", "name": "name 1" }, { "type": "2", "name": "name 2" }, { "type": "1", "name": "name 3" } ]""" # Transform json input to python objects input_dict = json.loads(input_json) # Filter python objects with list comprehensions output_dict = [x for x in input_dict if x['type'] == '1'] # Transform python object back into json output_json = json.dumps(output_dict) # Show json print output_json 3 là biểu thức được đánh giá và trả về.

Function này sẽ không có tên. Nó trả về một object được định danh là

import json

input_json = """
[
    {
        "type": "1",
        "name": "name 1"
    },
    {
        "type": "2",
        "name": "name 2"
    },
    {
        "type": "1",
        "name": "name 3"
    }
]"""

# Transform json input to python objects
input_dict = json.loads(input_json)

# Filter python objects with list comprehensions
output_dict = [x for x in input_dict if x['type'] == '1']

# Transform python object back into json
output_json = json.dumps(output_dict)

# Show json
print output_json
4. Giờ thì chúng ta có thể gọi nó như một hàm bình thường. Ví dụ:

Nó sẽ tương tự như các khai báo function như sau:

Xử dụng Lambda Function trong Python

Chúng ta thường sử dụng

[ 
        {
            "type": 1
            "name" : "name 1",
        }, 
        {
            "type": 1
            "name" : "name 3"
        }, 
]
8 khi mà cần một hàm không tên trong một khoảng thời gian ngắn.

Đây là một ví dụ sử dụng hàm

import json

input_json = """
[
    {
        "type": "1",
        "name": "name 1"
    },
    {
        "type": "2",
        "name": "name 2"
    },
    {
        "type": "1",
        "name": "name 3"
    }
]"""

# Transform json input to python objects
input_dict = json.loads(input_json)

# Filter python objects with list comprehensions
output_dict = [x for x in input_dict if x['type'] == '1']

# Transform python object back into json
output_json = json.dumps(output_dict)

# Show json
print output_json
8 để chỉ lọc ra các số chẵn từ danh sách.

[ 
        {
            "type": 1
            "name" : "name 1",
        }, 
        {
            "type": 1
            "name" : "name 3"
        }, 
]
0

Kết quả:

[ 
        {
            "type": 1
            "name" : "name 1",
        }, 
        {
            "type": 1
            "name" : "name 3"
        }, 
]
1

Ví dụ khi xử dụng Lambda Function với map()

Hàm

import json

input_json = """
[
    {
        "type": "1",
        "name": "name 1"
    },
    {
        "type": "2",
        "name": "name 2"
    },
    {
        "type": "1",
        "name": "name 3"
    }
]"""

# Transform json input to python objects
input_dict = json.loads(input_json)

# Filter python objects with list comprehensions
output_dict = [x for x in input_dict if x['type'] == '1']

# Transform python object back into json
output_json = json.dumps(output_dict)

# Show json
print output_json
9 trong Python nhận một hàm và một danh sách.

Hàm được gọi với tất cả các items trong danh sách và một danh sách mới được trả về chứa các item được hàm đó for each cho từng item. Đây là một ví dụ sử dụng hàm

import json

input_json = """
[
    {
        "type": "1",
        "name": "name 1"
    },
    {
        "type": "2",
        "name": "name 2"
    },
    {
        "type": "1",
        "name": "name 3"
    }
]"""

# Transform json input to python objects
input_dict = json.loads(input_json)

# Filter python objects with list comprehensions
output_dict = [x for x in input_dict if x['type'] == '1']

# Transform python object back into json
output_json = json.dumps(output_dict)

# Show json
print output_json
9 để nhân đôi tất cả các mục trong một danh sách.

[ 
        {
            "type": 1
            "name" : "name 1",
        }, 
        {
            "type": 1
            "name" : "name 3"
        }, 
]
2

Kết quả:

[ 
        {
            "type": 1
            "name" : "name 1",
        }, 
        {
            "type": 1
            "name" : "name 3"
        }, 
]
3

Ví dụ khi xử dụng Lambda Function với map()

Hàm

import json

input_json = """
[
    {
        "type": "1",
        "name": "name 1"
    },
    {
        "type": "2",
        "name": "name 2"
    },
    {
        "type": "1",
        "name": "name 3"
    }
]"""

# Transform json input to python objects
input_dict = json.loads(input_json)

# Filter python objects with list comprehensions
output_dict = [x for x in input_dict if x['type'] == '1']

# Transform python object back into json
output_json = json.dumps(output_dict)

# Show json
print output_json
9 trong Python nhận một hàm và một danh sách.

Hàm được gọi với tất cả các items trong danh sách và một danh sách mới được trả về chứa các item được hàm đó for each cho từng item. Đây là một ví dụ sử dụng hàm
import json

input_json = """
[
    {
        "type": "1",
        "name": "name 1"
    },
    {
        "type": "2",
        "name": "name 2"
    },
    {
        "type": "1",
        "name": "name 3"
    }
]"""

# Transform json input to python objects
input_dict = json.loads(input_json)

# Filter python objects with list comprehensions
output_dict = [x for x in input_dict if x['type'] == '1']

# Transform python object back into json
output_json = json.dumps(output_dict)

# Show json
print output_json
9 để nhân đôi tất cả các mục trong một danh sách.

Ưu điểm


Ưu điểm khi sử dụng
[ 
        {
            "type": 1
            "name" : "name 1",
        }, 
        {
            "type": 1
            "name" : "name 3"
        }, 
]
4 theo tìm hiểu các nhân mình thấy thì nó sẽ viết khá ngắn gọn. Tối ưu khi viết Code là rất tốt. Rất tối ưu khi cần xử lý logic trong một chỗ nhất định trong 1 khoảng thời gian ngắn

Nhược điểm


Ưu điểm khi sử dụng [ { "type": 1 "name" : "name 1", }, { "type": 1 "name" : "name 3" }, ] 4 theo mình thì sẽ rất khó cho việc print [obj for obj in dict if(obj['type'] == 1)] 7 và print [obj for obj in dict if(obj['type'] == 1)] 8.

https://www.programiz.com/python-programming/anonymous-function