我在使用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'],但两种方法均无效。我到处搜索,似乎找不到答案,将不胜感激。提前致谢。
答案 0 :(得分:0)
使用get_json
并不灵活,根据我的经验,如果没有您无法确定的请求内容,则会引发太多错误,但这是一种更好的方法:
获取请求数据作为字典:
为此,如果您使用的是GET请求,请使用request.args
;如果您使用的是POST请求,请使用request.form
。现在,您可以将它们视为普通字典(即使它们是Immutable Multi Dict
,但您可以像对待任何python字典一样操作它们,只是分配新值。
以JSON格式获取数据:
我认为使用json
模块更强大,只需使用json.dumps
函数并传递任何字典即可将其转换为JSON,以从JSON字符串中获取字典,请使用:json.loads
< / p>
错误含义
您收到的请求不正确,这意味着您发送的数据错误或以错误的方式请求路由,默认情况下,您的路由仅接受GET请求。