2015-09-04 86 views
1

請求我有一個Django(1.8.3)查看:傳遞從響應JSON數據在Django

  • 發出GET請求到服務器A(碼頭),其在體內返回JSON數據響應。然後,

  • 對服務器B(node.js)進行POST,將請求正文中從服務器A收到的JSON數據傳遞給服務器B.

的JSON數據的結構類似於:

{ 
    name: "foo", 
    details: { 
     "date": "today", 
     "isCool": "no", 
    }, 
    stuff: [ 
     { 
      "id": "1234", 
      "rating": "5", 
     }, { 
      "id": "5678", 
      "rating": "1", 
     },  
    ] 
} 

但我無法弄清楚如何從服務器A的響應轉換成在我的Django的查看請求到服務器B得到JSON。如果我這樣做:

jetty_response = requests.request(method='GET', url=jetty_url) 
node_response = requests.request(method="POST", url=node_url, 
        data=jetty_response.json()) 

我獲得服務器B上的JSON對象,但它看起來像這樣:

{ 
    name: "foo", 
    details: [ "date", "isCool"], 
    stuff: [ "id", "rating", "id", "rating"] 

name屬性是正確的,但在細節字典是不是收到了原始字典的鍵集,以及東西列表作爲原始字典中所有對象的鍵集的平面數組接收。

如果我不是這樣做在Django:

node_response = requests.request(method="POST", url=node_url, 
        data=json.dumps(jetty_response.json())) 

我得到節點一個空的對象,如果我這樣做只是同樣如此:

data=jetty_response.content 

我如何申請? ?

回答

1

自己弄明白了。

由於通常情況下,最簡單的答案:

node_response = requests.request(method="POST", url=node_url, 
       data=jetty_response.content) 

工作得很好,一旦我把我的日誌定睛一看,實現了我的職位反彈413,然後調整了我的bodyParser大小限制快遞。