2014-01-06 17 views
1

我想使用Django的「manage.py loaddata」命令將數據載入mysql數據庫。當我嘗試加載含有下列內容的JSON文件,我得到一個錯誤Django燈具:不能使用json文件將數據分配到文本字段

DeserializationError: Problem installing fixture 
'my_json.json': [u'No JSON object could be decoded'] 

當我刪除名爲「extra_data」字段,然後將數據成功加載。我發現字段「extra_data」是一個文本字段,由此導致錯誤。如何在json中正確指定textfield以便插入?

[ 
{ 
    "pk": 2, 
    "model": "auth.user", 
    "fields": { 
     "username": "JamesButt" 
    } 
}, { 
    "pk": 1, 
    "model": "socialaccount.socialaccount", 
    "fields": { 
     "uid": "JamesButt", 
     "last_login": "2013-11-22 11:11:11", 
     "user": 2, 
     "provider": "1", 
     "extra_data": "something", 
     "date_joined": "2013-11-22 11:11:11" 
    } 
} 
] 
+1

AFAIK文本框序列化爲JSON中簡單的字符串。你可以發佈模型嗎?你最近是否刪除或添加了'extra_data',並且可能忘記執行'syncdb'? –

+0

我正在使用django-alluth,並在那裏獲得模型。你可以查看[models.py](https://github.com/pennersr/django-allauth/blob/master/allauth/socialaccount/models.py) 其實它不是一個文本字段,而是被定義爲extra_data = JSONField (默認='{}') –

+0

@YerayDiazDiaz裏面的字符串也應該是一個有效的json。感謝它現在解決了 –

回答

0

extra_data = JSONField(default='{}'),請嘗試使用JSON文件:

"extra_data": { "data": "something" } 
相關問題