小编Sha*_*rma的帖子

Node js http服务器接受POST并接受JSON

我正在尝试使用 http 包创建一个 Node js 服务器。我只想接收我已经实现的 POST 请求。我面临的问题是我无法正确解析 JSON(我期望附加一个 JSON)。

我尝试使用 JSON.parse 但它不能解析整个 json 内容。它将一些值保留为 [Object],这是错误的。我看到了几个 JSONStream 包,但我不确定在这种情况下如何实现。

server.on('request', function(req, res){
    if(req.method == 'POST')
    {
        var jsonString;

        req.on('data', function (data) {
            jsonString = JSON.parse(data);
        });

        req.on('end', function () {
            serverNext(req, res, jsonString);
        });
    }
    else
    {
        res.writeHead(405, {'Content-type':'application/json'});
        res.write(JSON.stringify({error: "Method not allowed"}, 0, 4));
    }       
    res.end();
});
Run Code Online (Sandbox Code Playgroud)

请求示例:

这里 d = JSON 文件内容。(我在 Python 中这样做是为了发出这个示例请求)

r = requests.post('http://localhost:9001', headers = {'content-type': 'application/json'}, data = json.dumps(d))
Run Code Online (Sandbox Code Playgroud)

注意:我能够正确解析 JSON,但在某些情况下它会显示如下内容:

{ 'Heading': 
   { …
Run Code Online (Sandbox Code Playgroud)

javascript json node.js

5
推荐指数
1
解决办法
3639
查看次数

如何在模型中过滤对象时在Django中设置默认值

我正在尝试创建一个函数,我希望用户输入一些细节,并在此基础上我需要过滤掉这些数据并返回它.

例如,如果在我的模型名称中,我有:

名称.年龄,性别然后我想做:

Profile.objects.filter(name=name, age=age, gender=gender)

姓名,年龄和性别是由用户提供的值.现在,如果用户输入name ='Shashank'并将年龄和性别留空,那么我需要查询它:

Profile.objects.filter(name='Shashank')

而忽略所有那些空白值.所以我不确定如何实现这种行为.我可以设置什么类型的初始值,以便它不会影响搜索结果.

Profile.objects.filter(name='Shashank', age=<VALUE>, gender=<VALUE>)

<VALUE>过滤函数可以忽略哪里.

注意:我不想编写所有可能的filter语句组合,因为它不方便.

我尝试过使用None,False但它给出了错误的结果

python django django-models

3
推荐指数
1
解决办法
518
查看次数

Python比较2列表和2元组用等号

最近我在Python中学习了更多关于哈希的知识,我在这个博客中说到:

假设一个Python程序有2个列表.如果我们需要考虑比较这两个列表,你会怎么做?比较每个元素?嗯,这听起来很简单,但也很慢!

Python有一个更聪明的方法来做到这一点.当在程序中构造元组时,Python解释器会在其内存中计算其哈希值.如果在2个元组之间进行比较,它只是比较哈希值,它知道它们是否相等!

所以我对这些陈述感到很困惑.

首先,当我们这样做时: [1, 2, 3] == [1, 2, 3]那么这种平等如何运作?它是否计算哈希值然后进行比较?

第二,当我们做的时候有什么不同:

[1, 2, 3] == [1, 2, 3](1, 2, 3) == (1, 2, 3)

因为当我试图用timeit找到执行时间时,我得到了这个结果:

$ python3.5 -m timeit '[1, 2, 3] == [1, 2, 3]'
10000000 loops, best of 3: 0.14 usec per loop
$ python3.5 -m timeit '(1, 2, 3) == (1, 2, 3)'
10000000 loops, best of 3: 0.0301 usec per loop
Run Code Online (Sandbox Code Playgroud)

那么为什么从0.14列表到0.03元组的时间差异比列表更快.

python hash tuples list python-3.x

2
推荐指数
1
解决办法
569
查看次数

标签 统计

python ×2

django ×1

django-models ×1

hash ×1

javascript ×1

json ×1

list ×1

node.js ×1

python-3.x ×1

tuples ×1