为啥 JSON bool 数据作为字符串传递给 Django 后端?
Posted
技术标签:
【中文标题】为啥 JSON bool 数据作为字符串传递给 Django 后端?【英文标题】:Why is the JSON bool data pass to the Django backend as a string?为什么 JSON bool 数据作为字符串传递给 Django 后端? 【发布时间】:2018-11-06 18:00:37 【问题描述】:JSON data
与Pythonrequest.params
的对接:
http://localhost:8000/api/physicalservertask/list_for_home_workpanel/?has_physicalserver=false
如您所见,我在url
中添加了has_physicalserver
参数,这应该是逻辑“真”,逻辑“假”,但在我的Django API 中,我将它作为str
。
has_physicalserver_list = query_params.pop('has_physicalserver')
has_physicalserver = has_physicalserver_list[0] if (isinstance(has_physicalserver_list, list) and len(has_physicalserver_list) > 0) else ''
【问题讨论】:
因为不是JSON,只是一个查询参数。值始终是字符串;如果你想解析它,你应该明确地这样做。 【参考方案1】:查询参数是字符串。你可以使用json
解析它。
import json
has_physicalserver_list = query_params.pop('has_physicalserver') # string true/false
has_physicalserver_list = json.loads(has_physicalserver_list) # True/False
【讨论】:
以上是关于为啥 JSON bool 数据作为字符串传递给 Django 后端?的主要内容,如果未能解决你的问题,请参考以下文章
将 JSON 传递给 Dynamics CRM SharedVariable 而不是字符串
为啥 Vue 不读取我通过 PHP 作为道具传递的整个 JSON 对象?