2015-12-31 9 views
11

私は、下記のようDjangoのloaddataでは、json形式のエラーがスローされますが、yaml形式の場合は正しく動作します。

from django.db import models 

class Person(models.Model): 
    first_name = models.CharField(max_length=30) 
    last_name = models.CharField(max_length=30) 

はその後、私は.json形式の器具を使用し、私のようにモデルを作成したデータベースに初期データをインポートする方法を学習するためには、ジャンゴに新しいです

[ 
    { 
     "model": "myapp.person", 
     "pk": 1, 
     "fields": { 
      "first_name": "John", 
      "last_name": "Lennon" 
     } 
    }, 
    { 
     "model": "myapp.person", 
     "pk": 2, 
     "fields": { 
      "first_name": "Paul", 
      "last_name": "McCartney" 
     } 
    } 
] 

それはloaddataの

File "C:\Python27\lib\site-packages\django\core\serializers\python.py", line 96, in Deserializer 

Model = _get_model(d["model"]) 

django.core.serializers.base.DeserializationError: Problem installing fixture 'I:\DJANGO\library\myapp\fixtures 
\bookdata.json': string indices must be integers 

にエラーがスローされます。しかし、私はYAMLフォーマットでフィクスチャを使用する場合、下記のよう

- model: myapp.person 
    pk: 1 
    fields: 
    first_name: John 
    last_name: Lennon 
- model: myapp.person 
    pk: 2 
    fields: 
    first_name: Paul 
    last_name: McCartney 

これは魅力的です。

今は、すべてのものがドキュメントからコピーされただけなので、間違っていたのは混乱しています。 私はwindows 32bit、Django 1.9、python 2.7を使用しています。

+0

開始し、オブジェクトリストラッパーの終了タグの両方あなたの '.json'ファイルが含まれていることを確認してください:' [ '、'] ' – kia

+0

あなたはどのようなデータベースバックエンドを使用していますか? – acmisiti

+0

データベースバックエンドはsqliteです。 @kia開始タグと終了タグの両方を使用しているjsonファイル。 –

答えて

1

私はLinuxのミント/ジャンゴ1.9 /パイソン2.7でコードをチェックしましたし、それが正常に動作します。

私はこの問題は、あなたがあなたのファイルで使用している成文化かもしれないと思います。 jsonファイルでUTF-8のコード化を使用していることを確認してください。BOMを使用しないように注意してください。メモ帳++エディタは、ファイルにBOMが含まれているかどうかを判断して削除できます。

+0

ご返信ありがとうございます。 –

関連する問題