gpt4 book ai didi

python - 在 Python 模块中存储 JSON 数据的最佳方式

转载 作者:太空宇宙 更新时间:2023-11-04 03:42:30 25 4
gpt4 key购买 nike

我有一个正在开发的 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 开发者可以调用:

from my_module import seals_data

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

最佳答案

您的选择可能是将数据作为 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() 时,他们才会有任何交易。之后的任何调用都应该已经加载了数据。

关于python - 在 Python 模块中存储 JSON 数据的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25637050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com