Ausgabe
Ich möchte JSON-Daten in ein Python-Objekt konvertieren.
Ich erhalte JSON-Datenobjekte von der Facebook-API, die ich in meiner Datenbank speichern möchte.
Meine aktuelle Ansicht in Django (Python) ( request.POST
enthält JSON):
response = request.POST
user = FbApiUser(user_id = response['id'])
user.name = response['name']
user.username = response['username']
user.save()
- Das funktioniert gut, aber wie gehe ich mit komplexen JSON-Datenobjekten um?
- Wäre es nicht viel besser, wenn ich dieses JSON-Objekt zur einfachen Verwendung irgendwie in ein Python-Objekt konvertieren könnte?
Lösung
Sie könnten dies versuchen:
class User(object):
def __init__(self, name, username):
self.name = name
self.username = username
import json
j = json.loads(your_json)
u = User(**j)
Erstellen Sie einfach ein neues Objekt und übergeben Sie die Parameter als Map.
Sie können auch ein JSON mit Objekten haben:
import json
class Address(object):
def __init__(self, street, number):
self.street = street
self.number = number
def __str__(self):
return "{0} {1}".format(self.street, self.number)
class User(object):
def __init__(self, name, address):
self.name = name
self.address = Address(**address)
def __str__(self):
return "{0} ,{1}".format(self.name, self.address)
if __name__ == '__main__':
js = '''{"name":"Cristian", "address":{"street":"Sesame","number":122}}'''
j = json.loads(js)
print(j)
u = User(**j)
print(u)
Beantwortet von – cmaluenda
Antwort geprüft von – David Marino (FixError Volunteer)