2012-03-22 13 views
1

私はJSONデータを返すAPIを呼び出しています。私はjson.loadsを使ってJSONをPythonに辞書としてデコードしています。返されるディクショナリは、ネストされたリストを持つやや複雑なネストされたディクテーションです。例えばPython Dict値をSQLiteモデルに保存するには?

class Educations(models.Model): 
    name = models.ForeignKey(Candidate) 
    degree = models.CharField(max_length=200) 
    fieldOfStudy = models.CharField(max_length=200) 
    schoolName = models.CharField(max_length=200) 

各教育を定義した候補に関連付けられている:

{ "educations": { "_total": 1, "values": [{ "degree": "Bachelor of Arts", "fieldOfStudy": "Psychology", "schoolName": "Antioch University Seattle" }] } 

どのようにように定義されたモデルとSQLiteデータベースへの値のそれぞれを格納しますか候補クラス(ここには示されていません)。

答えて

2

あなたは

# Get after json.dump 
json_data = { "educations": { "_total": 1, "values": [{ "degree": "Bachelor of Arts", "fieldOfStudy": "Psychology", "schoolName": "Antioch University Seattle" }] } 

for each_education in json_data['educations']['values'] 
    new_education = Education(**each_education) 
    # Set the name foreign key 
    # new_educaiton.name = name 
    new_education.save() 

のような新しいオブジェクトのフィールドを設定することができます注:nameのForeignKeyのためのデータを取得する方法はまた、あなたが設定できるように、あなたの質問には言及していません。

+0

申し訳ありません - 私の理解はこれが何ですか? (1)json.dumpを使ってjson_dataを取得する(2) "educations"キー(#)の下にある "value"キーの下のすべての値をループするために変数each_educationを定義するmap new_education変数をクラスに保存するmap Educations(4) new_education.save()でnew_educationsをデータベースに保存するこのロジックは正しいですか? –

+0

はいコードを試してみてエラーが発生した場合はそのエラーを解決してください:) – Nilesh

+1

ありがとうございました。あなたの答えはうまくいくと思いますが、私が戻ってくるJSONの構造は[教育]と[値]私は** each_education引数が働いたとは思っていません。辞書の各値を個別に呼び出す必要があったので、あなたのように保存しました。私は正しい方向に私を指摘した後、私はそれを動作させることができました!ありがとうございました。 –

関連する問題