2016-05-24 4 views
0

公開API(JSON形式)から情報を取得する必要があるDjangoアプリケーションを開発しています。JSONをデシリアライズのモデル化 - カスタムフィールドのみ

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

はのは、私がFIRST_NAMEとLAST_NAMEフィールドに関する情報を返しますが、加えて、それはより多くの情報を返しますので、同様に使用しているパブリックAPIとしましょう:私は、次のモデルを持っています

{ 
"responseInfo": { 
    "requestId": "777" 
}, 
"response": { 
    "people": [{ 
     "firstName": "First Name", 
     "lastName": "Last Name", 
     "coordinates": { 
      "address": "Address", 
      "email": "[email protected]" 
     } 
    }, 
    "firstName": "First Name", 
    "lastName": "Last Name", 
    "coordinates": { 
     "address": "Address", 
     "email": "[email protected]" 
    }, 
    { 
      ... 
    } 
    ] 
} 

}

どのように私は私が必要なフィールドのみをデシリアライズすることができますか?私はDjango Restフレームワークシリアライザを使用しようとしましたが、JSONを自分のモデルに変換することは決して有効ではありません。なぜなら、私が必要としないフィールドを省略する方法を理解できないからです。

答えて

1

多分、すべてをデシリアライズしますか?

deserialized_data = json.loads(data) 
for person in deserialized_data['response']['people']: 
    # create Person here 
    # (or save values to some data structure to bulk_create later) 
+0

@ Boris Uvarov。私は今、JSONを繰り返し処理し、必要な情報を持って自分のモデルを作成することができます。 – ExplodingTiger

関連する問題