2015-09-04 47 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大小限制快递。