在Python Modu中存储JSON数据的最佳方法

2024-05-15 12:51:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个Python模块,它包含一个大的JSON文件作为它所依赖的数据的一部分。我希望Python用户能够将JSON文件作为Python变量导入,对于其他编程语言的用户,能够直接使用JSON文件。在

所以,我想弄清楚的是,让JSON对象“可导入”的最佳方法是什么。现在,我的解决方案是__init__.py

import json
import os

with open(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'seals.json')) as f:
    seals_data = json.load(f)

然后Python开发人员可以调用:

^{pr2}$

它或多或少起到了作用,但这对我来说很奇怪,我想确保没有一种更干净的方法来使json可导入。在


Tags: 模块文件数据path对象方法用户import
1条回答
网友
1楼 · 发布于 2024-05-15 12:51:54

您的选择可能是将数据作为python结构存储在模块中供某人使用的最佳方法。我看到它唯一的缺点是任何导入的模块都必须等待它执行IO,这并不理想,尤其是如果该模块曾经用于不涉及该数据的事情。在

我将使用一个类或函数来延迟加载数据,只允许在请求数据时将IO命中偏移到。在

下面是一个例子:

SEALS_DATA = None
def get_seals_data():
    global SEALS_DATA
    if SEALS_DATA is None:
        SEALS_DATA = json.load(open("%s/seals.json"%(os.path.dirname(__file__))))
    return SEALS_DATA

导入模块后,在第一次调用get_seals_data()之前,他们不会有任何交易。之后的任何调用都应该已经加载了数据。在

相关问题 更多 >