json - 烧瓶错误请求 400
问题描述
我正在使用 Flask 框架,我尝试了基本代码以查看它是否可以工作,我是从一个名为 DeepLizard 的 YouTuber 那里看到的,他们的代码似乎可以正常工作,但是当我在 Pycharm 上运行它时,它不断给我一个“无法解码 JSON 对象:预期值:第 1 行第 1 列(字符 0)”错误消息非常令人沮丧,这里是以下代码:
from flask import Flask
from flask import render_template
from flask import jsonify
from flask import request
app = Flask(__name__) #creates an instance of flask app. And the name
of application module.
@app.route('/')
@app.route('/hello', methods = ["POST", 'GET'])
def hello1():
message = request.get_json(force =True)
name = message['name']
response = {
'greeting': 'hello, ' + name + '!'
}
return jsonify(response)
我尝试使用这两种方法 = ['POST'] 和 ['POST', 'GET'],但都没有奏效。我到处搜索,似乎找不到答案,任何帮助将不胜感激。提前致谢。
解决方案
使用get_json
不灵活,根据我的经验,它会引发太多错误,没有您的请求内容我无法判断,但这里有一个更好的方法:
以字典形式获取请求数据:
request.args
如果您使用的是 GET 请求,或者您request.form
使用的是 POST 请求,请使用此操作。现在您可以将它们视为普通字典(即使它们是Immutable Multi Dict
,但您可以像任何 python 字典一样操作它们,除了分配新值。
以 JSON 格式获取数据:
我认为使用该json
模块更强大,只需使用json.dumps
函数并传递任何 dict 将其转换为 JSON,即可从 JSON 字符串中获取 dict 使用:json.loads
你的错误的含义
您收到了错误的请求,这意味着您发送了一些错误的数据或以错误的方式请求路由,默认情况下您的路由只接受 GET 请求。
推荐阅读
- android - 如何使用 Android NDK 将 Numpy 编译为 .so?
- csv - 在文件中查找字符串并复制该行
- javascript - 如何在 react.js 中构建动态选择框
- android - 使用 Retrofit Get 方法的动态端点
- javascript - 是否可以创建嵌入式反应应用小部件?
- java - Java循环遍历二维数组 - 作业
- vb.net - Visual Basic - 事件直到按键
- wordpress - 在 WooCommerce 中排除计算税的产品
- logstash - Logstash Grok 过滤器逗号 sep。细绳
- c# - 如何使用 Moq 设置数组元素?