如何使用 Python 删除数组中的 JSON 对象?

How to remove a JSON object in an array with Python?

使用 Python3,我将 JSON 输出存储在一个变量中。输出包含如下内容:

    {
    "department": "inventory",
    "products": [
        {
            "color": "red",
            "shape": "circle",
            "size": "large"
        },
        {
            "color": "blue",
            "shape": "square",
            "size": "small"
        },
        {
            "color": "green",
            "shape": "triangle",
            "size": "medium"
        }
    }

我正在尝试删除“products”数组中“size”值为“large”或“medium”的任何对象,留下新输出:

    {
    "department": "inventory",
    "products": [
        {
            "color": "blue",
            "shape": "square",
            "size": "small"
        },
    }

我在使用 pop 的数组外部结合使用 for 语句和 if 语句取得了一定的成功,但我似乎无法弄清楚如何仅针对产品数组中的对象执行此操作。

我试过以下方法:

    for element in products
     if last_login[i]["size"] == "medium":
         del element

这给了我这个:

    KeyError: 0

如果需要,请随时提出更多问题,

如有任何帮助,我们将不胜感激!

您可以过滤并重新分配而不是删除

import json

d = json.loads(json_data)
d['products'] = [x for x in d['products'] if x['size'] not in ('large', 'medium')]