gpt4 book ai didi

python - 使用本地 JSON 文件填充 Django DB

转载 作者:行者123 更新时间:2023-12-03 08:53:39 25 4
gpt4 key购买 nike

我使用 Django 创建一个 Web 应用程序,我需要基本数据。为此,我有一个 JSON,其中包含我想要导入到 Django 数据库中的大量数据。

因此,我正在寻找一种无需修改 JSON 文件即可导入此数据的方法。

从 JSON 中提取:

[
{
"key": "sword",
"name": "Sword",
"tier": 1
},
{
"key": "bow",
"name": "Bow",
"tier": 1
},
...
]

我的文件包含大量数据,更改它需要很长时间。是否有一个脚本/程序来导入与以下模型对应的所有这些数据:

from django.db import models

class Item(models.Model):
name = models.CharField(max_length=120)
tier = models.PositiveIntegerField()

我在django site上看到了这个例子,但是有必要向 JSON 中的每个项目添加一个非常长的属性模型

来自 Django 网站的示例:

[
{
"model": "myapp.person",
"pk": 1,
"fields": {
"first_name": "John",
"last_name": "Lennon"
}
},
{
"model": "myapp.person",
"pk": 2,
"fields": {
"first_name": "Paul",
"last_name": "McCartney"
}
}
]

最佳答案

您可以创建自定义管理命令来导入自定义 JSON 文件。 Docs .

import json
from django.core.management.base import BaseCommand
from myapp.models import Item

class Command(BaseCommand):

def add_arguments(self, parser):
parser.add_argument('json_file', type=str)

def handle(self, *args, **options):
with open(options['json_file']) as f:
data_list = json.load(f)

for data in data_list:
data['pk'] = data.pop('key')
Item.objects.get_or_create(pk=data['pk'], defaults=data)

关于python - 使用本地 JSON 文件填充 Django DB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57309417/

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