python - 在 python 中创建 JSON 模型
问题描述
我通常习惯于 Laravel PHP,我可以在其中执行诸如Auth::User()->name之类的操作,但是我需要用 Python 为我的班级制作一个游戏。
我希望能够做Colours.black或类似的事情,但我很挣扎。
我有一个名为Colours.py的 Python 文件,它看起来像这样:
import json
class Colours(object):
def __init__(self):
with open('app/colours.json') as data:
self.__dict__ = json.loads(data)
我的 JSON 文件如下所示:
[
{
"black": "(0, 0, 0)",
"white": "(255, 255, 255)",
"green": "(0, 255, 0)"
}
]
然后在另一个名为Main.py的 Python 文件中,我有以下内容:
from app.models import Colours
print(dir(Colours))
此代码不起作用。
编辑:抱歉忘了给出输出:
['Colours', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'json']
编辑2:我能够做到:
print(Colours.Colours().black)
## Output: (0, 0, 0)
但是我想知道这是否是一种方法 Just Colours.black?
解决方案
您可以通过将类创建为具有静态变量的类型来解决它,这样您就不需要初始化类
颜色.py:
import json
with open('app/colours.json') as data:
Colours = type("Colours", (), json.load(data)[0])
推荐阅读
- android - 错误:[Dagger/MissingBinding] @com.zhixin.wedeep.common.di.LoginApi okhttp3.OkHttpClient 不能在没有@Provides-annotated 方法的情况下提供
- typescript - FlatList scrollToIndex 打字稿博览会
- php - 使用 curl 或 webhook 从外部服务器将数据发布到数据库
- android - 带有 androidx 的 Fragment 中按钮的 SetBackground 显示警告:参数 getActivity() 可能为空
- html - 联系表格未显示为块
- codenameone - 代码仓库中的奇怪行为并链接到我的开源 git 仓库
- mongodb - 如何在数组中实现 MongoDB 嵌套查找?
- android - 如何在导航抽屉的片段中添加片段
- ios - 如何在 Xamarin Forms 中处理自定义 URL 方案
- node.js - React + Material-UI | 如何创建水平滚动卡片?