Json 在django中使用loaddata和dumpdata进行多部分导出/导入

Json 在django中使用loaddata和dumpdata进行多部分导出/导入,json,django,Json,Django,所以我用django做了一个转储数据,但是我的文件真的很大 关于如何在django中使用dumpdata和loaddata进行多部分导出和导入,有人有什么建议吗 我主要有一个应用程序,采取了最大的大小,所以我可以分开的应用程序 感谢和问候这可能有点复杂,但我会尽量简单。 首先,您需要列出应用程序中的所有型号 for model in django.apps.apps.get_models(): print(model.__name__) subprocess.call('pyth

所以我用django做了一个转储数据,但是我的文件真的很大

关于如何在django中使用dumpdata和loaddata进行多部分导出和导入,有人有什么建议吗

我主要有一个应用程序,采取了最大的大小,所以我可以分开的应用程序


感谢和问候

这可能有点复杂,但我会尽量简单。 首先,您需要列出应用程序中的所有型号

for model in django.apps.apps.get_models():
    print(model.__name__)
    subprocess.call('python', 'manage.py', 'dumpdata', model.__name__)
您可以根据需要修改此
子流程。无论是否要将其存储在文件或其他文件中,都可以调用
。就像您可以将模型的数据保存到文件中一样

>>> python manage.py dumpdata app._name.model_name > model_name_dump.json
同样,您也可以使用
loaddata
。下面是json转储的一个示例:

[
  {
    "model": "app.user",
    "pk": 1,
    "fields": {
      "password": "pbkdf2_sha256$30000$1LwvC3DJb6RI$P4nYQK/9UyDEiZpEJjfl0SATBiL5l8dRZ61QE83TzS4=",
      "last_login": "2017-06-09T11:41:26Z",
      "email": "SOLANKIARPIT1997@GMAIL.COM",
      "is_active": true,
      "is_account_active": true,
      "first_name": "arpit",
      "last_name": "solanki",
      "created_at": "2017-06-09T11:40:59Z",
      "is_superuser": false,
      "groups": [
        2
      ],
      "user_permissions": []
    }
  }
  {
    "model": "app.user",
    "pk": 2,
    "fields": {
      "password": "pbkdfjgkf2_sha256$30000$1LwvC3DJb6RI$P4nYQK/9UyDEiZpEJjfl0SATBiL5l8dRZ61QE83TzS4=",
      "last_login": "2017-06-09T11:41:26Z",
      "email": "SOLANKRPIT1997@GMAIL.COM",
      "is_active": true,
      "is_account_active": true,
      "first_name": "arpit",
      "last_name": "solnki",
      "created_at": "2017-06-09T11:40:59Z",
      "is_superuser": false,
      "groups": [
        2
      ],
      "user_permissions": []
    }
  }
. .
. .
]

将json转储文件拆分为多个小文件也很容易,因为它的结构非常固定。

这可能有点复杂,但我会尽量简单。 首先,您需要列出应用程序中的所有型号

for model in django.apps.apps.get_models():
    print(model.__name__)
    subprocess.call('python', 'manage.py', 'dumpdata', model.__name__)
您可以根据需要修改此
子流程。无论是否要将其存储在文件或其他文件中,都可以调用
。就像您可以将模型的数据保存到文件中一样

>>> python manage.py dumpdata app._name.model_name > model_name_dump.json
同样,您也可以使用
loaddata
。下面是json转储的一个示例:

[
  {
    "model": "app.user",
    "pk": 1,
    "fields": {
      "password": "pbkdf2_sha256$30000$1LwvC3DJb6RI$P4nYQK/9UyDEiZpEJjfl0SATBiL5l8dRZ61QE83TzS4=",
      "last_login": "2017-06-09T11:41:26Z",
      "email": "SOLANKIARPIT1997@GMAIL.COM",
      "is_active": true,
      "is_account_active": true,
      "first_name": "arpit",
      "last_name": "solanki",
      "created_at": "2017-06-09T11:40:59Z",
      "is_superuser": false,
      "groups": [
        2
      ],
      "user_permissions": []
    }
  }
  {
    "model": "app.user",
    "pk": 2,
    "fields": {
      "password": "pbkdfjgkf2_sha256$30000$1LwvC3DJb6RI$P4nYQK/9UyDEiZpEJjfl0SATBiL5l8dRZ61QE83TzS4=",
      "last_login": "2017-06-09T11:41:26Z",
      "email": "SOLANKRPIT1997@GMAIL.COM",
      "is_active": true,
      "is_account_active": true,
      "first_name": "arpit",
      "last_name": "solnki",
      "created_at": "2017-06-09T11:40:59Z",
      "is_superuser": false,
      "groups": [
        2
      ],
      "user_permissions": []
    }
  }
. .
. .
]

将json转储文件拆分为多个小文件也很容易,因为它的结构非常固定。

基于@Arpit Solanki answer,最后我使用以下脚本导出:

import subprocess
from django.apps import apps
for model in apps.get_models():
    model_str = f'{model._meta.app_label}.{model.__name__}.json'
    print(model_str)
    subprocess.call(['python', 'manage.py', 'dumpdata', '--indent', '2', '-o', f'{model_str}.json', model_str])

当然,'--indent',2'参数是可选的。此脚本需要Python 3。

基于@Arpit Solanki answer,最后我使用以下脚本导出:

import subprocess
from django.apps import apps
for model in apps.get_models():
    model_str = f'{model._meta.app_label}.{model.__name__}.json'
    print(model_str)
    subprocess.call(['python', 'manage.py', 'dumpdata', '--indent', '2', '-o', f'{model_str}.json', model_str])

当然,'--indent',2'参数是可选的。此脚本需要Python 3。

导入很容易。只需打开文件并将其分成两个或三个部分。基本上,jsonimport很简单。只需打开文件并将其分成两个或三个部分。基本上,它的jsonI还有一个模型占用了90%的空间:/但是感谢您在一个好的文本编辑器(如sublime)中打开该文件,并在其上使用json美化器。您将能够看到json的结构,然后您将知道编写一个将大文件拆分为小文件的脚本非常容易files@user462794我的json文件是6 gigas:,因此我无法简单地编辑它。您仍然可以使用python脚本打开文件加载数据并将其复制到多个文件。顺便说一句,您应该在问题描述中提供一个清晰的场景。我还有一个模型占用了90%的空间:/但是感谢您在一个好的文本编辑器(如sublime)中打开该文件,并在其上使用json beautifier。您将能够看到json的结构,然后您将知道编写一个将大文件拆分为小文件的脚本非常容易files@user462794我的json文件是6 gigas:,因此我无法简单地编辑它。您仍然可以使用python脚本打开文件加载数据并将其复制到多个文件。顺便说一下,您应该在问题描述中提供一个清晰的场景