Python字符串为null,但也不是None或空字符串

2024-05-19 21:55:44 发布

您现在位置:Python中文网/ 问答频道 /正文

class StartAnalysis(BaseHandler):
    def post(self):
        playlist = self.request.get('playlist')
        language = self.request.get('language')

如果我在没有此playlist字段的情况下发出POST请求,则会发生以下情况:

>>> playlist
null
>>> type(playlist)
<type 'unicode'>
>>> playlist is None
False
>>> not playlist
False
>>> playlist == ''
False
>>> playlist == u''
False

我该怎么检查它是否没有?为什么它说它是空的而不是空的

我在用AppEngine

发出POST请求的我的javascript代码:

let params = new URLSearchParams(location.search);
let url_id = params.get('id');
let url_language = params.get('language');
const url = 'http://localhost:8080/start-analysis?playlist=' + url_id + '&language=' + url_language;
$.ajax({
    url: url,
    type: 'POST',
    success: function(results) {
       ...
    },
    error: function(error) {
       ...
    }
});

Tags: selfidfalseurlgetrequesttype情况
1条回答
网友
1楼 · 发布于 2024-05-19 21:55:44

我改为对POST请求使用application/json,而不是默认的application/x-www-form-urlencoded,这似乎解决了当其中一个参数为空或丢失时,请求发送字符串"null"而不仅仅是空字符串的问题

let params = new URLSearchParams(location.search);
let url_id = params.get('id');
let url_language = params.get('language');
const url = 'http://localhost:8080/start-analysis';
$.ajax({
    url: url,
    type: 'POST',
    dataType: 'json',
    contentType: 'application/json',
    data: JSON.stringify({'playlist': url_id,'language': url_language}),
    success: function(results) {
        ...
    },
    error: function(response, status, error) {
        ...
    }
});

后端接收它的方式如下:

class StartAnalysis(BaseHandler):
    def post(self):
        data = json.loads(self.request.body)
        playlist = data['playlist']
        language = data['language']

相关问题 更多 >