- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在尝试在 Flask/Python 中对 SQLAlchemy 结果集进行 jsonify。
Flask 邮件列表建议使用以下方法 http://librelist.com/browser//flask/2011/2/16/jsonify-sqlalchemy-pagination-collection-result/#04a0754b63387f87e59dda564bde426e :
return jsonify(json_list = qryresult)
但是我收到以下错误:
TypeError: <flaskext.sqlalchemy.BaseQuery object at 0x102c2df90>
is not JSON serializable
我在这里忽略了什么?
我发现了这个问题:How to serialize SqlAlchemy result to JSON?这看起来非常相似,但我不知道 Flask 是否有一些魔法可以让它更容易,就像邮件列表帖子所建议的那样。
编辑:为了澄清,这就是我的模型的样子
class Rating(db.Model):
__tablename__ = 'rating'
id = db.Column(db.Integer, primary_key=True)
fullurl = db.Column(db.String())
url = db.Column(db.String())
comments = db.Column(db.Text)
overall = db.Column(db.Integer)
shipping = db.Column(db.Integer)
cost = db.Column(db.Integer)
honesty = db.Column(db.Integer)
communication = db.Column(db.Integer)
name = db.Column(db.String())
ipaddr = db.Column(db.String())
date = db.Column(db.String())
def __init__(self, fullurl, url, comments, overall, shipping, cost, honesty, communication, name, ipaddr, date):
self.fullurl = fullurl
self.url = url
self.comments = comments
self.overall = overall
self.shipping = shipping
self.cost = cost
self.honesty = honesty
self.communication = communication
self.name = name
self.ipaddr = ipaddr
self.date = date
最佳答案
看来您实际上还没有执行您的查询。请尝试以下操作:
return jsonify(json_list = qryresult.all())
[编辑]:jsonify 的问题是,通常对象不能被自动 json 化。甚至 Python 的日期时间也失败了 ;)
我过去所做的是向需要序列化的类添加一个额外的属性(如 serialize
)。
def dump_datetime(value):
"""Deserialize datetime object into string form for JSON processing."""
if value is None:
return None
return [value.strftime("%Y-%m-%d"), value.strftime("%H:%M:%S")]
class Foo(db.Model):
# ... SQLAlchemy defs here..
def __init__(self, ...):
# self.foo = ...
pass
@property
def serialize(self):
"""Return object data in easily serializable format"""
return {
'id' : self.id,
'modified_at': dump_datetime(self.modified_at),
# This is an example how to deal with Many2Many relations
'many2many' : self.serialize_many2many
}
@property
def serialize_many2many(self):
"""
Return object's relations in easily serializable format.
NB! Calls many2many's serialize property.
"""
return [ item.serialize for item in self.many2many]
现在我可以做的 View :
return jsonify(json_list=[i.serialize for i in qryresult.all()])
希望这会有所帮助;)
[编辑 2019]:如果您有更复杂的对象或循环引用,请使用像 marshmallow 这样的库。 )。
关于python - jsonify Flask 中的 SQLAlchemy 结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7102754/
我目前正在尝试将一个项目从flask迁移到Django作为练习,只是为了让它在Django上工作......我想知道Django中是否有一种方法可以执行flask.jsonify的工作? 如果没有,您
我想做的是通过 AJAX 将 Python 函数的结果返回到我的 javascript。目前我得到 This Response当我期待“True”或“False”时 jquery: var tes
我对 Flask 和 Python 非常陌生,我必须将 MySql 查询转换为 json 格式。在转换时,我面临值(value)错误并且无法理解,请帮助我,提前谢谢。 ValueError:字典更新序
我目前有以下内容: class MainError: def __init__(self, code, message, errorsList): self.code = co
json 中有 10 个输出,但仅显示第一个输出。如何显示所有 10 个输出? from collections import OrderedDict import requests from lxm
我正在尝试将排序字典传递给 jsonify() 函数,然后在 JS 代码中使用它来取出值。我看到的是,即使我传递了正确的值,由于某种原因它们被 jsonify 重新排序。 json_data = {
json_data2 = some_func(DB, pra1) data = jsonify(result = json_data2) 我想将“数据”转换为字符串变量,有方便的方法吗? 最佳答案 R
我正在构建以字符串格式发送回结果的 API。 @app.route('/', methods=['POST']) def converter(): content = request.json
这是我的数据库表架构 电影(id、电影名称、流派、时间、 channel ) 我有一个 MySQL 表,想要将嵌套的 json 返回到 API,并按流派和 channel 对它们进行分组。 例如: [
我的第一个问题在这里! 我正在使用 python 和 flask 开发网络服务。 Neo4j 是我想要 APIfy 的后端。 我在图形数据库上运行一个匹配查询并想要返回一个 json 对象。下面是代码
第一次使用 Flask,我创建了一个非常基本的应用程序,我正在尝试打印推荐系统的结果。第一组代码来 self 的 python 函数 (print_most_similar),它正在创建一个格式化字符
我有一个 jsonify 模板标签: from django.core.serializers import serialize from django.db.models.query import
我有一些具有不同属性类型的对象:String、Float、LocalDate 等等。要将此对象转换为 json String,我使用 (com.google.gson.Gson) gson.toJso
我正在尝试使用 Flask 创建一个简单的 API。我现在想返回一个字典列表,如下所示: print results # prints out [{'date': '2014-09-25 19:00
基本上,我只想对我的 sql 查询结果进行 json 编码。 x = db.session.query(User).filter_by(username = request.form['usernam
玩弄 Flask,只想打印出一些 JSON 格式的数据,但我不断收到错误消息: NameError: global name 'jsonify' is not defined from flask i
我有一个需要 jsonify 的对象列表。我查看了 flask jsonify 文档,但我就是不明白。 我的类(class)有几个 inst-var,每个都是一个字符串:gene_id、gene_sy
我正在使用 Flask 蓝图模块为我的应用程序创建 REST API。因为它是一个 REST api,所以每个响应都需要用 JSON 编码。目前,我必须确保以 jsonfify(my_data) 结束
在尝试处理 Flask Rest API 中的错误时,我想返回错误消息和状态代码的 json 版本。我尝试了以下 @app.route("/model/test/",methods=["GET"])
这是我在 Persistent 中的模型: Tip text Text created_at UTCTime updated_at UTCTime title Text
我是一名优秀的程序员,十分优秀!