2024-06-26 11:13:40 发布
网友
我从各种外部api中提取一些JSON数据。他们的数据结构如下:
"game": { "title": "Super Mario Bros. 3", "release": "1989", "players": 3, .. }
但是,我想通过这个模型直接存储在我的数据库中:
可以看出,JSON属性与模型的属性不匹配。在
有没有一种方法可以方便地导入每个属性的映射?是否可以通过django的反序列化模块来实现这一点?或者我需要创造我自己的东西吗?在
我认为最简单的方法是用python编写脚本。 您可能需要json模块来处理获取的数据,并将其转换为python对象。在
然后,循环json,使用Game.objects.create()将数据插入数据库
Game.objects.create()
您可以创建classmethod(或将其放在模型管理器https://docs.djangoproject.com/en/dev/ref/models/instances/#creating-objects)中:
class Game(models.Model): name = models.CharField() debut = models.DateField() max_players = models.IntegerField() @classmethod def create_from_j(cls, game): # assumed that game is dict already j2m = {'title': 'name', 'release': 'debut', 'players': 'max_players'} return cls(**{j2m[k]:v for k,v in game.items()})
只需调用此方法,然后需要从json数据创建游戏:
我认为最简单的方法是用python编写脚本。 您可能需要json模块来处理获取的数据,并将其转换为python对象。在
然后,循环json,使用
Game.objects.create()
将数据插入数据库您可以创建classmethod(或将其放在模型管理器https://docs.djangoproject.com/en/dev/ref/models/instances/#creating-objects)中:
只需调用此方法,然后需要从json数据创建游戏:
^{pr2}$相关问题 更多 >
编程相关推荐