Как сделать новый словарь из json?
есть JSON файл. Хочу сделать из него новый словарь, в котором будет только название, цена. Для этого нужно удалить некоторые пары ключ-значение.
Пример словаря:
{
"products": [
{
"id": 2164181,
"key": "ne63060019k9190a",
"name": "GeForce RTX 3060 Dual 12GB GDDR6 NE63060019K9-190AD",
"full_name": "Palit GeForce RTX 3060 Dual 12GB GDDR6 NE63060019K9-190AD",
"name_prefix": "\u0412\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u0430",
"extended_name": "\u0412\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u0430 Palit GeForce RTX 3060 Dual 12GB GDDR6 NE63060019K9-190AD",
"status": "active",
"images": {
"header": "//content2.onliner.by/catalog/device/header/5b4d031565755192170ac9ba5b6c56bb.jpeg",
"icon": null
},
"image_size": [],
"description": "12 \u0413\u0411 GDDR6 LHR, 1320 \u041c\u0413\u0446 / 1777 \u041c\u0413\u0446, 3584sp, 28 RT-\u044f\u0434\u0435\u0440, \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0430 \u043b\u0443\u0447\u0435\u0439, 192 \u0431\u0438\u0442, 2 \u0441\u043b\u043e\u0442\u0430, \u043f\u0438\u0442\u0430\u043d\u0438\u0435 8 pin, HDMI, DisplayPort",
"micro_description": "1320 \u041c\u0413\u0446/1777 \u041c\u0413\u0446",
"html_url": "https://catalog.onliner.by/videocard/palit/ne63060019k9190a",
"reviews": {
"rating": 46,
"count": 34,
"html_url": "https://catalog.onliner.by/videocard/palit/ne63060019k9190a/reviews",
"url": "https://catalog.api.onliner.by/products/ne63060019k9190a/reviews"
},
"review_url": null,
"color_code": null,
"prices": {
"price_min": {
"amount": "1248.67",
"currency": "BYN",
"converted": {
"BYN": {
"amount": "1248.67",
"currency": "BYN"
}
}
},
"price_max": {
"amount": "1728.45",
"currency": "BYN",
"converted": {
"BYN": {
"amount": "1728.45",
"currency": "BYN"
}
}
},
"offers": {
"count": 45
},
"html_url": "https://catalog.onliner.by/videocard/palit/ne63060019k9190a/prices",
"url": "https://shop.api.onliner.by/products/ne63060019k9190a/positions"
},
"max_installment_terms": {
"all": {
"term": 4,
"label": "\u0420\u0430\u0441\u0441\u0440\u043e\u0447\u043a\u0430 \u0434\u043e 4 \u043c\u0435\u0441\u044f\u0446\u0435\u0432"
}
},
"max_cobrand_cashback": {
"percentage": 5,
"label": "5% \u043d\u0430 \u00ab\u041a\u043b\u0435\u0432\u0435\u0440\u00bb"
},
"sale": {
"is_on_sale": false,
"discount": 0,
"min_prices_median": {
"amount": "1284.57",
"currency": "BYN"
}
},
"second": {
"offers_count": 1,
"min_price": {
"amount": "999.00",
"currency": "BYN"
},
"max_price": {
"amount": "999.00",
"currency": "BYN"
}
},
"forum": {
"topic_id": 24538032,
"topic_url": "https://forum.onliner.by/viewtopic.php?t=24538032",
"post_url": "https://forum.onliner.by/posting.php?mode=newtopic&f=163&device=ne63060019k9190a",
"replies_count": 226
},
"url": "https://catalog.api.onliner.by/products/ne63060019k9190a",
"advertise": null,
"stickers": [
{
"type": "customers_choice",
"label": "\u0412\u044b\u0431\u043e\u0440 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u0435\u0439",
"text": "\u0422\u043e\u0432\u0430\u0440 \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u0442\u043e\u043f-5 \u043f\u043e \u0437\u0430\u043a\u0430\u0437\u0430\u043c \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u0435\u0439 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435",
"color": "4c7b0e",
"bg_color": "ecf6df",
"html_url": null
},
{
"type": "recommended",
"label": "Onl\u00edner \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442",
"text": "",
"color": "0b6fd3",
"bg_color": "dfebff",
"html_url": null
}
],
"prime_info": {
"available": false
},
"by_parts_info": {
"monthly_payment": {
"amount": "49.59",
"currency": "BYN"
}
}
},
Пытаюсь сделать так, но не получается:
data_dict = json.loads(names)
print(data_dict["products"][0]["key"])
for i in data_dict:
del data_dict["products"][i]["id"]
del data_dict["products"][i]["key"]
Источник: Stack Overflow на русском