Я использую много данных, возвращаемых из WEB-API. Функция ниже вызывает API 22 раза, декодирует и загружает JSON в формат Python.Затем я сохраняю результаты в большом списке из 22 страниц с каждыми 100 объектами искусства в качестве данных.
fourteen_list = return_14th_century_works_list()
Чтобы ограничить необходимые вызовы API, я хочу создать функцию, которая хранит этот список в виде файла.если его нет, и когда он присутствует, я хочу загрузить файл с моего компьютера.Я придумал следующее:
with open('fourteenth_century_list.txt', 'w') as fourteenth_century_file:
print(fourteen_list, file=fourteenth_century_file)
try:
with open('fourteenth_century_list.txt', 'r') as fourteenth_century_file:
fourteenth_list_cache = fourteenth_century_file.read()
count_objects(fourteenth_list_cache)
except FileNotFoundError:
fourteenth_list = return_14th_century_works_list() Calls API again
count_objects(fourteen_list)
Я использую функцию count_objects, чтобы проверить, все ли еще работает, но файл, который открывается в блоке try, похоже, не возвращается так же, как я сохранилЭто;Когда я запускаю этот код, вызов функции в блоке try возвращает ошибку типа.Для меня это признак того, что файл, открытый с диска, имеет несколько иной формат, чем если бы я загружал его непосредственно из API.
Когда я вызываю функцию count_objects () с не кэшированной версией моегосписок, так что четырнадцать_листов в этом случае работает нормально.
Изменяет ли with_open (имя файла, 'w'), а затем with_open (имя файла, 'r') ваши данные, и если нет, то что я здесь не так делаю?