动态创建类-Python

时间:2019-06-14 04:59:14

标签: python json python-3.x namedtuple

我正在尝试找出基于JSON文件的内容以动态方式创建类的最佳方法是什么。因此,例如,这是JSON文件的一个片段:

{
"stuff": [{
        "name": "burger",
        "aka": ["cheeseburger", "hamburger"]
    },
    {
        "name": "fries",
        "aka": ["french fries", "potatoes"]
    },
    {
        "name": "meal",
        "items": [{
                "name": "burger",
                "value": "<burger>"
            },
            {
                "name": "fries",
                "value": "<fries>"
            }
        ]
    }

  ]
}

现在基于此JSON,我想要表示这些对象的类。因此,例如:

class Burger:
   def __init__(self):
   self.name = "burger"
   self.aka = ["cheeseburger", "hamburger"]

class Meal:
   def __init__(self):
   self.name = "meal"
   self.burger = Burger()
   self.fries = Fries()

因此,基本上,基于该JSON,我希望能够创建表示与JSON中所见相同的属性和关系的类。任何关于最好的方法来解决这个问题的想法,将不胜感激!

1 个答案:

答案 0 :(得分:2)

假设from time import sleep def _print(n, s): # n = sleep for seconds, s = string to print while True: # infinite loop print(s) # print the string sleep(n) # sleep for number of seconds you specify sleep(20) # initial sleep of 20 seconds _print("Hello, World!", 10) # run the custom print function which sleeps for n seconds and prints s string 变量包含您的json数据,请尝试以下操作:

json

它的作用是调用for d in json: name = d.pop('name') t = type(name, (object,), d) ,它将在python中创建新类型(与您执行type的过程完全相同,它正确地将名称设置为class name变量的内容,具有基类name和属性object中的元素。变量d将包含所需的类对象。