У меня есть два объекта JSON в функции Lambda (python). Я хочу сравнить ключи от объекта 2 с ключами в объекте 1 и удалить все записи, которые не содержатся в объекте 1.
Каждый объект содержит несколько сотен элементов, поэтому вложенный цикл for займет слишком много времени и времени. Я нашел diffpy, но для этого требуется модуль, импортированный в мою лямбду, и я бы хотел, чтобы в идеале было собственное решение на python (чтобы минимизировать размер моей лямбда-функции).
object1 = [{'name': 'apple', 'price': 100}, {'name': 'grape', 'price':
150}, {'name': 'orange', 'price': 40}]
object2 = [{'name': 'apple', 'price': 200}, {'name': 'grape', 'price':
350}, {'name': 'orange', 'price': 40}, {'name': 'mango', 'price': 400}]
В приведенном выше примере ожидаемый новый объект должен иметь только ключ / значение имени из первого объекта и ключ / значения цены из обоих объектов. Манго из объекта 2 не содержится в объекте 1, поэтому мы можем игнорировать.
newObject = [{'name': 'apple', 'priceA': 100, 'priceB': 200}, {'name':
'grape', 'priceA': 150, 'priceB': 350}, {'name': 'orange', 'priceA': 40,
'priceB': 40}]
Я попытался использовать следующий код для реализации:
newHash= {}
newObject = []
for item in object1:
name = item["name"]
priceA = item["price"]
for item in object2:
if name == item["name"]:
newHash["name"] = item["name"]
newHash["priceA"] = priceA
newHash["priceB"] = item["price"]
newObject.append(newHash)