2016-07-13 11 views
0

I Liste der JSON-Objekt ot Einzel JSON RahmenWie Liste der JSON konvertieren Rahmen zu JSON Rahmen

Hier umwandeln will, ist mein Code

for i in user1: 
    name=i.name 
    password=i.password 
    id1=i.id 
    user = { "name" : name, 
       "password" : password, 
       "id":id1} 
    user = json.dumps(user) 
    userid.append(user) 

Ich erhalte Ausgang

ist

['{"passwort": "A123", "name": "Sam", "id": 1}', '{"passwort": "B123", "name": "Sammy", "id" : 2} ',' {"password": "C123", "name": "Abhi", "id": 3} ']

Was ich will, ist so etwas wie

{{ "Passwort": "A123", "name": "Sam", "id": 1}, { "Passwort": " B123" , "name": "Sammy", "id": 2}, { "Passwort": "C123", "name": "Abhi", "id": 3}}

+1

Ihre Beispielausgabe ist kein gültiger JSON. Sie können eine Liste mit '[]' oder einem Objekt mit Schlüsseln haben. –

+0

Ja @KlausD. aber ich möchte geschachtelte JSON-Frames machen. Kann das möglich sein? –

+1

Im neuen JSON gibt es Mehrdeutigkeit mit mehr als einem Schlüssel "Passwort" - das können Sie nicht als Beispiel angeben. Was Sie tun können, ist einen eindeutigen Schlüssel für jedes innere JSON zu geben. –

Antwort

2

json.dumps() gibt eine Zeichenkette zurück, so dass Sie Zeichenketten an userid anhängen - und somit mit der Liste der angezeigten Zeichenketten enden.

Wenn Sie ein Wörterbuch der Wörterbücher, die id als Primärschlüssel verwenden wollen, alles, was Sie brauchen, ist:

users = {i.id: {"name": i.name, "password": i.password} for i in user1} 
+0

Danke @martineau, aber was ich will, ist Wörterbuch der Wörterbücher –

+0

@Abhishek: Oh ... das war nicht klar aus Ihrer Frage. Angesichts dieser Information habe ich meine Antwort aktualisiert, die davon ausgeht, dass Sie die 'id' des Benutzers als Schlüssel für die Werte im äußeren Wörterbuch verwenden wollen (da es für jeden Eintrag etwas Einzigartiges sein muss). – martineau

0

Was ich jetzt gemacht habe

ist
user = {} 
name,password,id1 = [],[],[] 
user1=session.query(User).all() 
for i in user1: 
    name=i.name 
    password=i.password 
    id1=i.id 
    user.update({ id1:{ 
      "name" : name, 
      "password" : password, 
      } 
     }) 

Dank für Ihre Unterstützung