2

Django-Smuggler を使用して、JSON データをデータベースにアップロードしています。

JSON ファイルをロードすると、次のエラーが表示されます。No JSON object could be decoded

オンライン JSON バリデーターを使用して、データが有効であることを確認しました。データダンプを実行してそのデータを取得しました。

なぜこれが起こっているのか知っている人はいますか?

これは、例外が発生している場所です(スター付き):

try:
    for format, stream in data:
        objects = serializers.deserialize(format, stream)
        for obj in objects:
            model = obj.object.__class__
            if router.allow_syncdb(using, model):
                models.add(model)
                counter += 1
                obj.save(using=using)
    if counter > 0:
        sequence_sql = connection.ops.sequence_reset_sql(style, models)
        if sequence_sql:
            for line in sequence_sql:
                cursor.execute(line)
**except Exception, e:**
    transaction.rollback(using=using)
    transaction.leave_transaction_management(using=using)
    raise e

また、JSONファイルの一般的な形式は次のとおりです。

[
  {
"pk": 1, 
"model": "auth.message", 
"fields": {
  "message": "Successfully uploaded a new avatar.", 
  "user": 1
}
      }, 
  {
"pk": 2, 
"model": "auth.message", 
"fields": {
  "message": "You have saved model 'mymodel'", 
  "user": 1
}
  }, 
      {
"pk": 3, 
"model": "auth.message", 
"fields": {
  "message": "You have saved model 'sdfsd'", 
  "user": 1
}
  }, 
  {
"pk": 4, 
"model": "auth.message", 
"fields": {
  "message": "Successfully uploaded a new avatar.", 
  "user": 1
}
  }, 
  {
"pk": 5, 
"model": "auth.message", 
"fields": {
  "message": "Successfully updated your avatar.", 
  "user": 1
}
  }
]
4

2 に答える 2

7

JSON 文字列の最後の「,」文字を削除する必要があります。

于 2012-06-20T14:27:06.363 に答える
4

私はこれに少し遅れていますが、jsonlint を通過したとしても、JSON ファイルはそれほど有効ではない可能性があります。BOMエンコーディングなしの UTF-8 を使用しているかどうかを確認します。

于 2012-09-01T00:58:49.467 に答える