import json
data = json.loads('{"value": 123}')
stringify = lambda x: str(x)
modified_data = {k: stringify(v) if isinstance(v, int) else v for k, v in data.items()}
print(modified_data) # Output: {'value': '123'}
Или для фильтрации списка, полученного из JSON:
data = json.loads('[1, 2, 3, 4, 5]')
even_numbers = list(filter(lambda x: x % 2 == 0, data))
print(even_numbers) # Output: [2, 4]
Таким образом, лямбда-функции позволяют быстро определять логику преобразования или фильтрации данных JSON "на лету",
особенно когда требуется простая операция над каждым элементом.
Лямбда-выражения в Python могут эффективно применяться для обработки данных в JSON-формате, в основном, когда требуется быстрая и лаконичная трансформация или фильтрация значений.
Примеры использования:
Предположим, у нас есть список JSON-объектов и нужно извлечь значения определенного ключа:
import json
json_data = '[{"name": "Alice", "age": 30}, {"name": "Bob", "age": 25}]'
data = json.loads(json_data)
# Использование лямбда-выражения для извлечения имен
names = list(map(lambda x: x['name'], data))
print(names) # Output: ['Alice', 'Bob']
Если нужно отфильтровать JSON-объекты на основе некоторого критерия:
import json
json_data = '[{"name": "Alice", "age": 30}, {"name": "Bob", "age": 25}, {"name": "Charlie", "age": 35}]'
data = json.loads(json_data)
# Использование лямбда-выражения для фильтрации по возрасту (старше 28)
older_than_28 = list(filter(lambda x: x['age'] > 28, data))
print(older_than_28) # Output: [{'name': 'Alice', 'age': 30}, {'name': 'Charlie', 'age': 35}]
Можно использовать лямбда-выражения для изменения формата или значений данных:
import json
json_data = '[{"city": "New York", "temperature_celsius": 25}, {"city": "London", "temperature_celsius": 18}]'
data = json.loads(json_data)
# Преобразование температуры из Цельсия в Фаренгейт
fahrenheit_data = list(map(lambda x: {"city": x['city'], "temperature_fahrenheit": (x['temperature_celsius'] * 9/5) + 32}, data))
print(fahrenheit_data) # Output: [{'city': 'New York', 'temperature_fahrenheit': 77.0}, {'city': 'London', 'temperature_fahrenheit': 64.4}]
Лямбда-выражения полезны при сортировке списка JSON-объектов на основе значений одного из ключей:
import json
json_data = '[{"name": "Alice", "age": 30}, {"name": "Bob", "age": 25}, {"name": "Charlie", "age": 35}]'
data = json.loads(json_data)
# Сортировка по возрасту
sorted_data = sorted(data, key=lambda x: x['age'])
print(sorted_data)
# Output: [{'name': 'Bob', 'age': 25}, {'name': 'Alice', 'age': 30}, {'name': 'Charlie', 'age': 35}]
Преимущества использования лямбда-выражений:
map
, filter
и sorted
.Когда следует избегать лямбда-выражений:
def
, чтобы код оставался читаемым и поддерживаемым.В заключение, лямбда-выражения - мощный инструмент для быстрой и эффективной работы с данными JSON в Python, особенно при необходимости выполнять простые преобразования, фильтрации или сортировки.