weranda, если добавлять данные, то разницы нет.
Если из прочитанного словаря удалить пару ключей и записать обратно в файл - часть старых данных перезапишется, а часть останется и json уже не будет валидным.
Метод seek перемещает указатель, а truncate чистит всё, что ниже указателя.
Можешь записывать значения в файлик, а потом при старте программы читать нужные значения из файла. Так же можешь притвориться опытным программистом и использовать какую-нибудь базу данных, sqlite3, например.
Имя класса забыли.
Это будет работать, но только если создавать списки через этот самый класс, а не через литералы, как мы любим. То же самое касается и спискового включения.