首页 > 解决方案 > 无法编辑 JSON 文件

问题描述

我想要做的是删除“Shoe”变量下包含“Nike”的数组。
这是Json文件:

{
    "Shoes/Colorways":
    [
        {
            "Shoe": "Nike",
            "Colorway": "Blue"
        },
        {
            "Shoe": "Jordan",
            "Colorway": "Blue"
        }
    ]
}

我希望 Json 文件的最终结果如下所示:

{
    "Shoes/Colorways":
    [
        {
            "Shoe": "Jordan",
            "Colorway": "Blue"
        }
    ]
}

这是我用来尝试使用“Nike”删除数组的代码:

import json

path = 'keywords.json'

with open(path, 'r') as f:
    data = json.load(f)

for info in data['Shoes/Colorways']:
    if info['Shoe'] == 'Nike':
        data.remove(info['Shoe'])
        data.remove(info['Colorway'])
    else:
        pass
print(data)

这是错误:

Traceback (most recent call last):
  File "c:\Users\TestUser\Desktop\Projects\Programs\json.py", line 10, in <module>
    data.remove(info['Shoe'])
AttributeError: 'dict' object has no attribute 'remove'

我意识到这.remove仅适用于列表,我似乎无法找到在这种情况下如何做我需要做的事情。

标签: pythonarraysjsondictionary

解决方案


尝试这个:

import json

path = 'keywords.json'

with open(path, 'r') as f:
    data = json.load(f)

data['Shoes/Colorways'] = [info for info in data['Shoes/Colorways'] if info['Shoe'] != 'Nike']

print(data)

推荐阅读