2016-04-26 16 views
1

Ich habe 2 Antworten, die von Python Kolben zurückWie 2 Json Antworten von Python Kolben zurück anhängen

response1 = jsonify(teachers=teachers) 
{ 
     "teachers" : [ 
      { 
       "name":"Mary" 
      } 
     ] 
} 
response2 = jsonify(students=students) 
    { 
     "students" : [ 
      { 
       "name":"John" 
      } 
     ] 
} 

Wie kann ich eine Antwort haben, die diese 2 kombiniert? Die Ausgabe sollte so aussehen:

{ 
     "college" :[ 
     "teachers" : [ 
      { 
       "name":"Mary" 
      } 
     ], 
     "students" : [ 
      { 
       "name":"John" 
      } 
     ] 
} 

Ich versuchte mit response = response1 + response2 und append.

Antwort

1
# Assuming response1 and response2 are the return value from jsonify 
resp1 = flask.json.loads(response1.data) 
resp2 = flask.json.loads(response2.data)  

resp1.update(resp2) 

ODER

import itertools 
response = dict(itertools.chain(resp1.items(), resp2.items())) 
+0

Beides gab mir Fehler 'Typeerror:‚Antwort‘Objekt nicht iterable ist' – aaj

+0

Wenn Sie Zugriff auf die Daten und es in ein dict vor dem bekommen können Rufen Sie jsonify auf (da das ein Response-Objekt zurückgibt), das ist das Beste. – Richard

+0

sonst könnten Sie flask.json.loads verwenden - ich habe meine Antwort aktualisiert, um das zu reflektieren, weil das ist, was Sie in Ihre ursprüngliche Frage gestellt haben, aber wie ich vorher sagte, hoffentlich haben Sie Zugang zu den tatsächlichen Daten, bevor es a wird Antwortobjekt – Richard

-1
user_info = json.loads(user_info.content) 
user_quota = json.loads(user_quota.content) 
user_info['user_quota'] = user_quota 
jsonify(user_info) 
+0

Während dieser Code die Frage beantworten kann, würde das Bereitstellen eines zusätzlichen Kontexts, der angibt, wie und/oder warum er das Problem löst, den langfristigen Wert der Antwort verbessern. – Badacadabra