2016-10-17 6 views
0

zum Objekt Wenn ich JSON-Daten wieWie verschachtelte Liste konvertiert

[ 
    { 
     "id":1, 
     "name":"New Island", 
     "residents":[ 
      { 
       "name":"Paul", 
       "age":"25" 
      } 
     ] 
    }, 
    { 
     "id":2, 
     "name":"One Nation", 
     "residents":[ 
      { 
       "name":"James", 
       "age":"23" 
      }, 
      { 
       "name":"Jessica", 
       "age":"26" 
      } 
     ] 
    } 
] 

DRF Deserializer erhalten macht es die OrderedDict

enthält zur Liste Aber ich will es zur Liste des Klassenobjekts machen.

Hier sind meine django Modelle

class Country(models.Model): 
    name = models.CharField(max_length=20) 

class Resident(models.Model): 
    name = models.CharField(max_length=20) 
    country = models.ForeignKey('Country', related_name='residents') 
+1

Sie müssten Ihre JSON-Daten analysieren und die Informationen an den Klassenkonstruktor übergeben. – MooingRawr

+0

Überprüfen Sie Serialisierer in Ruhe-Rahmen, 'Bewohner' scheinen ein anderes Modell, also überprüfen' Tiefe' in Serialisierer, die helfen würden. – Rohan

+0

Ich habe es bereits deserialisiert. Es macht eine Liste wie 0 = OrderedDict ([('name', 'Neue Insel'), ('Bewohner', [OrderedDict ([('Name', 'Paul'), ('Alter', 25)])])]) 1 = OrderedDict ([('name', 'One Nation'), ('Bewohner', [OrderedDict (['name', 'James'), ('Alter', 23)]), OrderedDict ([('Name': 'Jessica'), ('Alter', 26)])])])) – skriex

Antwort

1

Von Python JSON library

import json 

data = '[{"id":1,"name":"New Island","residents":[{"name":"Paul","age":"25"}]},{"id":2,"name":"One Nation","residents":[{"name":"James","age":"23"},{"name":"Jessica","age":"26"}]}]' 

x = json.loads(data) 

for each_set in x: 
    for every_person in each_set["residents"]: 
     print(every_person["name"]) #getting resident's name 
     print(every_person["age"]) #getting age 
     print(each_set["name"]) #getting the country name 

Von dort ist es so einfach wie vorbei in die richtigen Parameter für Klassen wie

Verwandte Themen