gpt4 book ai didi

python - [删除]从 JSON 字典中删除一个项目会留下一个空字典 : `{}` . 如何完全删除它?

转载 作者:行者123 更新时间:2023-12-01 02:31:49 25 4
gpt4 key购买 nike

我正在尝试删除嵌套在字典中的列表中的字典项。
之后我del对象,修改后的字典将包含一个空字典:{}在已删除对象的位置。
这是我正在使用的代码:

json_dict = {"top_key": "top_value", "bottom_key": [{"list_dict": "list_dict_value"},{"list_dict1": "list_dict_value1"}]}

print("initial:", json_dict)

def delete(list_dict):
for i in json_dict["bottom_key"]:
if list_dict in i:
del i[list_dict]


delete("list_dict")
print("final:", json_dict)

最终打印结果将返回:
final: {'bottom_key': [{}, {'list_dict1': 'list_dict_value1'}], 'top_key': 'top_value'}
(pw-retriever) simon@[pw-retriever](fix_del_ls)

我正在尝试找到一种方法来删除 {}除了键:值对之外,一次性。

编辑:对于到底发生了什么的解释也将受到高度赞赏。

最佳答案

您可以执行以下操作:

for i in json_dict["bottom_key"][:]:  # important: iterate a shallow copy
if list_dict in i:
json_dict["bottom_key"].remove(i)

但是,由于从列表中删除的时间复杂度为 O(N),并且您可能需要删除多个元素,因此您可能会考虑一次性从头开始重建它:

json_dict["bottom_key"] = [d for d in json_dict["bottom_key"] if list_dict not in d]

关于python - [删除]从 JSON 字典中删除一个项目会留下一个空字典 : `{}` . 如何完全删除它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46744510/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com