python - 无法编辑 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
仅适用于列表,我似乎无法找到在这种情况下如何做我需要做的事情。
解决方案
尝试这个:
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)
推荐阅读
- android - Retrofit GET 使用带有整数的 @path 返回 null
- php - 无法连接到 MySQL:用户 'root'@'91.223.9.100' 的访问被拒绝(使用密码:否)
- sas - 在 SAS 中计算价值加权回报
- oracle - 如何将 oracle 表作为 Spark Streaming 的源?
- python - 如何在 Jupyter MD 单元中使用欧米茄写入欧姆值
- c - libcurl 简单 vs 多界面
- reactjs - 无法在 React js Web 应用程序中使用 material-ui-pickers
- jquery - :not(.classA, .classB, .classC) 的对面选择器,用于 (X and (A or B or C)) 选择器
- python - 改进 Codejam 的“无限煎饼屋”的解决方案
- haskell - Haskell 中的模块签名是什么?