Лучшая практика загрузки JSON в модуль Python ⇐ Python

Программы на Python
Anonymous
Лучшая практика загрузки JSON в модуль Python

Сообщение Anonymous »

У меня есть собственный модуль Python, назовем его mymodule, с функцией, которая загружает некоторые данные в файл json в соответствии с ключом:

Код: Выделить всё

import json

def fetch_data(k):
fname = os.path.join(
os.path.abspath(os.path.dirname(__file__)),
"data.json"
)
with open(fname, "r") as f:
data = json.load(f)
return data[k]

...
Затем я использую его в другом скрипте, например

Код: Выделить всё

from mymodule import fetch_data

for k in "ABCD":
print(fetch_data(k))
Проблема в реализации заключается в том, что функция открывает файл каждый раз, а если json большой, это может значительно замедлить работу. Я думал о загрузке json вне функции как глобальной переменной, а затем вызывать его в функции, но поскольку модуль выполняет множество других действий, не требующих этих данных, также кажется глупым открывать json каждый раз, когда вызывается модуль. , опять же, особенно если json большой).
Как лучше всего использовать Python
  • Загружать внешний данные только при необходимости
  • Сохраняйте данные в памяти после однократной загрузки, если они понадобятся позже (как в примере выше)
Я думал о классе, который инициализируется только при первом вызове с функцией получения ключа, но я не совсем уверен, как его правильно реализовать.

Подробнее здесь: https://stackoverflow.com/questions/790 ... hon-module

Вернуться в «Python»