Python 我的flask restful api输出中缺少的是null和重复
该api是使用Flask、Flask_restful和postgresql构建的 根据文档,我创建了一个资源字段,并在返回字段中使用postgresql命令从数据库中获取相同的资源。我哪里做错了?我做错了什么?输出如图所示。数据库只有2行,但结果显示为null,并显示了2次 输出Python 我的flask restful api输出中缺少的是null和重复,python,postgresql,flask,flask-restful,Python,Postgresql,Flask,Flask Restful,该api是使用Flask、Flask_restful和postgresql构建的 根据文档,我创建了一个资源字段,并在返回字段中使用postgresql命令从数据库中获取相同的资源。我哪里做错了?我做错了什么?输出如图所示。数据库只有2行,但结果显示为null,并显示了2次 输出 您将使用cur.fetchall()获得一个元组列表,因此此代码必须满足您的需要: from flask import Flask from flask_restful import Resource, fields,
您将使用
cur.fetchall()
获得一个元组列表,因此此代码必须满足您的需要:
from flask import Flask
from flask_restful import Resource, fields, marshal_with,Api
import psycopg2
conn=psycopg2.connect("dbname=jobkhulyodb user=postgres password=password")
cur=conn.cursor()
app=Flask(__name__)
api=Api(app)
resource_fields = {
'job_title': fields.String,
'job_description': fields.String,
}
class Todo(Resource):
@marshal_with(resource_fields, envelope='resource')
def get(self, **kwargs):
cur.execute("SELECT job_title,job_description from jobs")
return cur.fetchall()
api.add_resource(Todo, '/foo', endpoint='todo')
if __name__=='__main__':
app.run()
调试提示:尝试打印
cur.fetchall()
并查看得到的结果。此外,一般来说,复制/粘贴比使用屏幕截图要好。[('jobs2','jobs2','jobs3','jobs3 description'),('jobs3','jobs3 description')]。在控制台上运行。打印有我需要的准确数据。但是对于大空间,我想这不是一个空间问题。虽然你错了元素[1],但不是什么大问题。谢谢
...
def get(self, **kwargs):
...
list_ = []
for elem in cur.fetchall():
list_.append({ 'job_title': elem[0], 'job_description': elem[1] })
return list_