Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中删除JSON文件中的特定值?_Python_Json - Fatal编程技术网

如何在Python中删除JSON文件中的特定值?

如何在Python中删除JSON文件中的特定值?,python,json,Python,Json,所以我得到了一个JSON文件 { "banned": [123, 456] } 我想做的是,如果可能的话,通过Python的JSON模块或Python本身,只删除banked的123值 我尝试的是: with open("banned.json", "w") as bannedload: bannedjson = json.load(bannedload) bannedjson["banned&quo

所以我得到了一个JSON文件

{
    "banned": [123, 456]
}
我想做的是,如果可能的话,通过Python的JSON模块或Python本身,只删除banked的123值

我尝试的是:

with open("banned.json", "w") as bannedload:
    bannedjson = json.load(bannedload)
    bannedjson["banned"].pop(123)
    # json.dump(bannedjson, bannedload) This Line was just for testing
第二次尝试:

 with open("banned.json", "w") as bannedload:
    bannedjson = json.load(bannedload)
    del bannedjson["banned"][123]
    # json.dump(bannedjson, bannedload) This Line was just for testing
有人知道怎么做吗?

del和pop都基于元素的索引工作,您可以使用remove方法删除元素,如下所示:

bannedjson["banned"].remove(123)
请注意,如果要删除的元素在列表中不存在,remove将抛出错误。您可以在删除前使用in子句进行检查:

elt = 123
if elt in bannedjson["banned"]: 
    bannedjson["banned"].remove(elt)
此外,“删除”仅删除元素的第一个匹配项,您可以使用列表理解删除所有元素,如下所示:

elt = 123
bannedjson["banned"] = [element for element in bannedjson["banned"] if elt != element]

到目前为止你都试了些什么?@KlausD。我试过了。pop和del也使用json.dumpShow向我们展示你的代码!添加了代码@KlausD。两个代码块似乎都很好。现在您只需重新打开文件进行写入,或者使用新文件并转储数据。因此,我配置了我的版本,现在它可以工作了!谢谢你的帮助!