файл пишется в текстовом виде, библиотека поддерживает все стандартные классы данных (dict, tuple, list, set и т.д) разбирает числовые данные по типу, булевы разбирает в True/False
Дополнительно умеет возвращать строку (без записи в файл) через функции dumps/loads
import json
# имя файла, в котором мы сохраним объект
shoplistfile = 'shoplist.data'
# список покупок
shoplist = ['яблоки', 'манго', 'морковь']
# Запись в файл
with open(shoplistfile, 'w+') as fle: # менеджер контекста, файл закроется при выходе из блока
json.dump(shoplist, fle, indent=' ') # indent - отступы форматирования
del shoplist # уничтожаем переменную shoplist
# Считываем из хранилища
with open(shoplistfile, 'r') as fle:
shoplist = json.load(fle)
print(shoplist)