2012-01-04 3 views
2

У меня есть проект Django, и я хочу добавить тестовые данные в базу данных. Когда я делаю SyncDB как этотDjango светильники. JSONDecodeError

python ~/django/foo/manage.py syncdb 

После таблицы установлены я получил ошибку

Problem installing fixture '~/django/foo/shop/fixtures/initial_data.json': 
Traceback (most recent call last): 
raise JSONDecodeError("No JSON object could be decoded", s, idx) 
JSONDecodeError: No JSON object could be decoded: line 1 column 0 (char 0) 

Моя модель здесь:

# -*- coding: utf-8 -*- 
from django.db import models 

class Image(models.Model): 
    file = models.ImageField(upload_to = "img/") 
    title = models.CharField(
     max_length=128, 
     blank = True 
    ) 
    slug = models.SlugField(max_length=128, blank = True) 
    def __unicode__(self): 
     return unicode(self.title) 

Мой светильник это:

[ 
    { 
     "pk": 2, 
     "model": "shop.image", 
     "fields": { 
      "slug": "", 
      "file": "img/8_m.jpg", 
      "title": "1" 
     } 
    } 
] 

В чем проблема?

ответ

7

Дикая догадка ... может быть, ваш файл fixture сохраняется как файл unicode ??? Попробуйте открыть его в простом текстовом редакторе вы можете, или запустить

hexdump ~/django/foo/shop/fixtures/initial_data.json 

и убедитесь, что первый символ в свалки 5b не fe или что-то.

+0

У меня такая же ошибка, и это, похоже, проблема. Теперь, что я могу сделать? Заранее благодарны за Вашу помощь. –

+0

Одним простым способом является 'cat> ascii_fixture.json', а затем скопируйте/вставьте содержимое файла, а затем control-D, чтобы закончить его. Для огромных файлов или окон google "конвертирует текстовый файл unicode в ascii". – Leopd

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