2015-10-04 10 views
-1

Я хотел бы, чтобы заполнить БД моей модели из этого JSON:Джанго: Как заполнить базу данных из JSON

{ 
    "pk": 1, 
    "model": "companies.Company", 
     "name": "Google", 
     "site": "google.com" 
    } 
}{ 
    "pk": 2, 
    "model": "companies.Company", 
    "fields": { 
     "name": "Zoho", 
     "site": "zoho.com", 
    } 
}{ 
    "pk": 3, 
    "model": "companies.Company", 
    "fields": { 
     "name": "Digg", 
     "site": "digg.com", 
    } 
}{ 

Я сделал мой JSON, как, как documentation описывает, но я не знаю, что делать отсюда!

Если кто-нибудь знает, что я должен делать отсюда, я хотел бы помочь! Рад ответить на любые вопросы об этом!

EDIT:

мне сказали, чтобы запустить

./manage.py loaddata companies.json 

Когда я побежал, что я получил:

' django.core.serializers.base.DeserializationError: Problem installing fixture 'PATH_TO_FILE/companies/fixtures/companies.json': Extra data: line 21 column 2 - line 5586860 column 6 (char 909 - 249730297)'

«строка 21 столбец 2 - линия 5586860 столбец 6 (полукокс 909 -249730297) «Быть ​​последним символом в файле. Я также попытался удалить одну целую запись в модель (чтобы исключить, что, возможно, последняя запись была испорчена), но я снова получил ту же ошибку, что и ошибка, связанная с последним символом в файле.

EDIT 2

Линии 20 и 21 просто, где первая запись заканчивается, а второй начинается (линия 20 является последней строкой в ​​примере, показанном в примере выше):

Строка 20: "}"

Строка 21: "} {"

PS Причина, по которой это строка 20 и 21, состоит в том, что на самом деле имеется больше полей, чем; имя и сайт, показанный в вопросе.

+0

В нем говорится, что проблема начинается в строке 21. Пожалуйста, покажите строки 20 и 21. –

+0

@ DanielRoseman Я добавил их в вопрос! –

+0

Я бы предложил запустить json через json-parser (под Linux, я думаю, что у меня jsonp). Похоже, что ваш json неправильно сформирован. (Вы не должны иметь конечную запятую для своей последней строки в полевом разделе, строка 21, вероятно, должна быть}, {(и, возможно, еще более переформатирована) и т. Д. – Foon

ответ

3

Это не действительный JSON; вы не можете иметь близкую скобку, за которой следует открытая скобка. Вам нужна запятая между ними, но для того, чтобы это было действительно, вам понадобится весь файл, который должен быть заключен в [...].

2

С этим файлом внутри каталога "компания/светильники", вы должны просто запустить

./manage.py loaddata your-fixture-filename.json 

и фиксированная JSON из вашего примера:

[ 
    { 
     "pk": 1, 
     "model": "companies.Company", 
     "fields": { 
      "name": "Google", 
      "site": "google.com" 
     } 
    }, 
    { 
     "pk": 2, 
     "model": "companies.Company", 
     "fields": { 
      "name": "Zoho", 
      "site": "zoho.com" 
     } 
    }, 
    { 
     "pk": 3, 
     "model": "companies.Company", 
     "fields": { 
      "name": "Digg", 
      "site": "digg.com" 
     } 
    } 
] 
+0

Я внесла изменения в вопрос относительно вашего ответа! –

+0

Можете ли вы включить весь ваш JSON-файл? – Oli

+0

Мой файл JSON превышает 5M строк! –

Смежные вопросы