python - 将 json 文件导入 Django 模型

标签 python django json

我有一个json格式的文件,结构如下:

{
    "Admiralty Islands": [
        [
            "Up to 1 kg",
            "5.00"
        ], 
        [
            "1 - 10 kg", 
            "10.00"
        ], 
    ], 
    "Afghanistan": [
        [
            "Up to 1 kg",
            "15.00"
        ], 
        [
            "1 - 10 kg", 
            "20.00"
        ], 
    ], 
...
}

还有三个模型:

class Country(models.Model):
    name = models.CharField(max_length=128, unique=True)

class Weight(models.Model):
    name = models.CharField(max_length=128, unique=True)
    min_weight = models.IntegerField()
    max_weight = models.IntegerField()

class Shipping(models.Model):
    country = models.ForeignKey(Country)
    weight = models.ForeignKey(Weight)
    price = models.DecimalField(max_digits=7, decimal_places=2)

使用json文件导入数据库最正确的方法是什么?

我应该将 json 文件转换为 fixture 文件吗?但是如何处理表之间的关系呢? 还是像这样编写 view 会更好:

f = open('file.json', 'r')
obj = simplejson.load(f)

for o in obj:
    record = Country(name = o)
    record.save()

但也不知道如何在模型之间建立关系。

或者有更简单的方法吗?

谢谢。

最佳答案

使用 manage.py 导入 fixtures:

python manage.py loaddata fixture.json

关于python - 将 json 文件导入 Django 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9643291/

相关文章:

javascript - 如何将 Django 表单与 Ajax 集成?

sql - 从大表中获取每个 parent 的最新 child - 查询太慢

python - 添加 list_filter 时如何修复/设置 django modeladmin 更改列表中的列宽?

php - 在简单的 Web 文档系统(或基本 CMS)上使用 RDBMS 与平面文件相比有什么真正的好处吗?

java - Jackson typeId 不包含在生成的 json 中

python - 使用循环或列表理解创建多个 pandas 数据框

python - Tensorflow 和 Anaconda 的 ModuleNotFoundError (Windows 10)

python - Ansible 和 jinja - 将双引号转义的 JSON 字符串发送到 AWS

python - 如何在 python 中使本地服务器上的文件可通过 HTTP 下载?

javascript - 拆分多个数组 json 字符串