Ошибки загрузки данных Django 1.9

Ubuntu 15.10 или Python 3.4 / Джанго 1.9

команда:

python manage.py loaddata flight_data.json(yaml)

ошибки:

json: django.core.serializers.base.DeserializationError: проблема с установкой приспособления '/home/nerdbox2/django_/logbook/flights/fixtures/flight_data.json': 'model'

yaml: django.core.serializers.base.DeserializationError: проблема с установкой приспособления '/home/nerdbox2/django_/logbook/flights/fixtures/flight_data.yaml': 'model'

Попробовав несколько пакетов csv- > model и безуспешно, я решил использовать онлайн-конвертер как для csv-json, так и для csv-yaml в соответствии с Django Docs, и все равно не повезло. У меня есть ~ 2100 записей для заполнения БД.

да, я нуб, но я действительно забил это до смерти за последние 3 дня!

Любая помощь будет оценена по достоинству!

модель, json и yaml в комментарии ниже


person user2498975    schedule 25.03.2016    source источник
comment
Можете ли вы показать нам модель и содержимое json, которое вы пытаетесь загрузить?   -  person yedpodtrzitko    schedule 25.03.2016
comment
json 1 из ~2100 исходных файлов имеет замыкающую скобку: pastebin.com/1ewEDF8S yaml: pastebin.com/ppfDsKTx модель django: pastebin.com/832EnXew   -  person user2498975    schedule 25.03.2016
comment
Хм. Пробовали ли вы читать документацию по loaddata за эти три дня? Потому что вы обнаружите, что loaddata может загружать только приборы, созданные командой dumpdata, но ваши данные имеют другой формат. Попробуйте сбросить что-нибудь через dumpdata, чтобы увидеть, как должны выглядеть данные, и соответственно отредактируйте свои приборы, или создайте пользовательскую команду для загрузки имеющегося у вас формата данных.   -  person yedpodtrzitko    schedule 25.03.2016
comment
Да, я читал, там 1 страница. Тот факт, что loaddata работает только с данными, полученными с помощью dumpdata, мне не был ясен. Я также пробовал несколько приложений/пакетов для импорта данных CSV. Просто кажется, что есть более простой способ. Спасибо за ответ!   -  person user2498975    schedule 26.03.2016


Ответы (2)


Иногда определенные модели в приложении могут вызывать сбой сериализации. Django укажет такие модели как предупреждения после запуска команды dumpdata. Убедитесь, что вы исключили такие модели (или все приложение в некоторых случаях) с помощью следующей команды:

./manage.py dumpdata --exclude auth.permission > db.json

Здесь мы считаем, что auth.permission — это таблица, которую вам нужно удалить.

Если вы используете дамп базы данных для загрузки новой базы данных (в другом проекте django), это может вызвать IntegrityError (если вы загружаете данные в ту же базу данных, она работает нормально)

Чтобы решить эту проблему, обязательно сделайте резервную копию базы данных, исключив таблицы contenttypes и auth.permissions:

./manage.py dumpdata --exclude auth.permission --exclude contenttypes > db.json

Теперь вы можете использовать команду loaddata со свежей базой данных.

./manage.py loaddata db.json

Источник: https://coderwall.com/p/mvsoyg/django-dumpdata-and-loaddata

person Prathik    schedule 13.08.2019

Если у вас есть дамп базы данных без разрешения и типа контента, вам нужно проверить 3 основных момента:

1# Посмотрите ваш дамп json, либо это правильный ключ и значение в соответствии с сериализацией django, например:

[

      {

      "model": "myDev.person",

      "pk": 1,

      "fields": {

              "first_name": "anjan",

              "last_name": "thakuri"

      }

    },

     {

      "model": "myDev.person",

      "pk": 2,

      "fields": {

              "first_name": "Swikriti",

              "last_name": "Thakuri"

     }

    }

]

Убедитесь, что у вас есть такой формат, который включает в себя 3 ключа: pk, model и fields (остальное находится внутри него). .

На этой странице есть ссылка, которая указывает на Сериализация JSON формат 102, который обеспечивает более формальную и полную спецификацию.

2# Если вы используете естественный ключ, общие исключения, с которыми я столкнулся, связаны с естественный ключ.

Вы больше всего знаете о естественном ключе

3# Тот же экземпляр миграции (этап) для краткого руководства Stackoverflow

person Anjan Thakuri    schedule 16.01.2021