首页 > 解决方案 > 在 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

标签: pythonjson

解决方案


您可以通过将类创建为具有静态变量的类型来解决它,这样您就不需要初始化类

颜色.py

import json

with open('app/colours.json') as data:
   Colours = type("Colours", (), json.load(data)[0])

推荐阅读