django - 在 Django 中将 JSON 数据从响应传递到请求

标签 django node.js python-requests

我有一个 Django (1.8.3) View :

  • 向服务器 A (jetty) 发出 GET 请求,服务器 A 在响应正文中返回 JSON 数据。然后,

  • 向服务器 B (node.js) 发出 POST,并在请求正文中传递从服务器 A 接收到的 JSON 数据。

JSON 数据的结构如下:

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

但是我不知道如何在 Django View 中将服务器 A 的响应中的 JSON 获取到对服务器 B 的请求中。如果我这样做:

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()))

我在 Node 中得到一个空对象,如果我简单地做同样的事情:

data=jetty_response.content

我如何提出此请求?

最佳答案

我自己想出来了。

通常情况下,最简单的答案是:

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

当我仔细查看我的日志并意识到我的 POST 反弹回 413 时,工作正常,然后在 Express 中调整了我的 bodyParser 的大小限制。

关于django - 在 Django 中将 JSON 数据从响应传递到请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32387498/

相关文章:

python - Django URL 到 View 的映射

django - celery + django - 如何将任务状态写入数据库

node.js - MongoDB Nodejs MapReduce

javascript - 如何刷新页面几秒钟直到下载完成

django - 如何解决 PytestConfigWarning : Unknown config option: DJANGO_ SETTINGS_MODULE error?

python - 用户未在 Django 中进行身份验证?它显示错误

node.js - 如果我希望我的 graphql 端点不是 `/graphql` ,如何使用 `GraphqlModule` 配置它?

python - Flask Python - 将主机更改为 0.0.0.0 后,Put 请求仅返回 404

python - 如何检查 URL 是否可下载?

python - 如何使用Python请求模块和TeamCity API来触发构建?