你好,我是python的初学者,我在我的本地机器'localhost'上调用api时遇到此错误
from flask import Flask,request
from flask_restful import Resource,Api
app = Flask(__name__)
api = Api(app)
todos = {}
class HelloWorld(Resource):
def get(self):
return 'Hello, World War 3'
class Todo(Resource):
def get(self, todo_id):
return {todo_id: todos[todo_id]}
def put(self,todo_id):
todos[todo_id] : request.form['data']
return {todo_id: todos[todo_id]}
api.add_resource(HelloWorld,'/')
api.add_resource(Todo,'/<string:todoId>')
if __name__ == '__main__':
app.run(debug=True)
这是我在调用这个API时遇到的错误
raise JSONDecodeError("Expecting
value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
它是一个非常小的代码,但我无法捕捉到真正的问题。我正在烧瓶的官方网站上做:Flask Site
我在同一个问题上看到了其他帖子,但它们是高级别的,我无法理解。任何帮助将不胜感激,谢谢
您的代码中存在以下几个问题:
todos = {'1': "Say hello"}
todoId
作为字符串对象,但在get和put方法中,您将todo_id
作为参数。两者都应该相同。'Hello, World War 3'
之类的东西替换{'msg': 'Hello, World War 3'}
注意:最后一个只是为了让您的信息保持所有回报标准,而不是真正的问题。
使用以下代码进行测试,并与相关代码进行比较。你会明白的。
from flask import Flask, request
from flask_restful import Resource, Api
app = Flask(__name__)
api = Api(app)
todos = {'1': "Say hello"}
class HelloWorld(Resource):
def get(self):
return {'msg': 'Hello, World War 3'}
class Todo(Resource):
def get(self, todo_id):
return {todo_id: todos[todo_id]}
def put(self,todo_id):
todos[todo_id] : request.form['data']
return {todo_id: todos[todo_id]}
api.add_resource(HelloWorld,'/')
api.add_resource(Todo,'/<string:todo_id>')
if __name__ == '__main__':
app.run(debug=True)