Удаление элемента работает, но удаление всего списка, похоже, не работает. . Когда я удаляю элемент из списка, он отображается в файле JSON, но в тот момент, когда я пытаюсь удалить весь список, включая его имя, ничего в JSON не меняется (хотя оператор print показывает, что это сработало).
Имейте в виду, что я хочу удалить сам список, а не только элементы.
Изменение не отображается в файле JSON, и я могу не понимаю, в чем проблема.
Ниже вы найдете мой код Python и текущий файл JSON.
Код: Выделить всё
import json
# Saves the edited data in the json file
def opslaan(data):
"""
Saves the data to the json file.
Arguments:
data (dict): the list that needs to be saved to the json file
"""
try:
with open("opslag.json", "r") as f:
bestaande_data = json.load(f)
except (FileNotFoundError, json.JSONDecodeError):
bestaande_data = {}
bestaande_data.update(data)
with open("opslag.json", "w") as f:
json.dump(bestaande_data, f, indent=4)
# Loads the json
def ophalen():
with open("opslag.json", "r") as f:
return json.load(f)
# Asks the user to delete data
def item_verwijderen(data):
volledig_of_item = input("Would you like to delete an item or a whole list?")
if volledig_of_item == "item":
verwijderen_lijst = input("From what list would you like to delete an item?")
item_lijst = input("What item would you like to delete?")
data[verwijderen_lijst].remove(item_lijst)
else:
lijst = input("What list would you like to delete?")
del data[lijst]
opslaan(data)
lijst = {}
data_opslaan = opslaan(lijst)
data_ophalen = ophalen()
item_verwijderen(data_ophalen)
print(data_ophalen)
Код: Выделить всё
{
"Games": [
"League of Legends",
"Call of Duty",
"Football Manager",
"Cyberpunk"
],
"Films": [
"Deadpool",
"Wolverine",
"Pirates of the Caribbean"
]
}
Код: Выделить всё
Would you like to delete an item or a whole list?list
What list would you like to delete?Games
{'Films': ['Deadpool', 'Wolverine', 'Pirates of the Caribbean']}
Код: Выделить всё
{
"Films": [
"Deadpool",
"Wolverine",
"Pirates of the Caribbean"
]
}
Код: Выделить всё
{
"Games": [
"League of Legends",
"Call of Duty",
"Football Manager",
"Cyberpunk"
],
"Films": [
"Deadpool",
"Wolverine",
"Pirates of the Caribbean"
]
}
Кроме того, я пытался искать ответы в Интернете, но Я не смог найти ничего, что помогло бы.
Подробнее здесь: https://stackoverflow.com/questions/791 ... -json-file
Мобильная версия