两台计算机都运行Flask版本0.12.2,在同一个浏览器版本(chrome 58.0.3029.110(64位))。在
以下是传递到jsonify函数序列化数据的数据示例:
[('Code1', ['website1.com']), ('Code2', ['website2.com'])]
未安装simplejson的机器的输出为:
^{pr2}$与安装simplejson时相比:
[{"code":"Code1",place:["website1.com"]},{"code":"Code2",place:["website2.com"]}]
from flask import jsonify, Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgres://localhost:5432/test_db'
db = SQLAlchemy(app)
class myModel(db.Model):
__tablename__ = 'testtable'
code1 = db.Column(db.Text, primary_key=True)
code2 = db.Column(db.Text)
def __init__(self, co1, co2):
self.code1 = co1
self.code2 = co2
@app.route("/")
def b():
a = [('Code1', ['website1.com']), ('Code2', ['website2.com'])]
myModel = test_model.myModel("website1.com", "website2.com")
myModel = test_model.myModel("website3.com", "website4.com")
db.session.add(myModel)
db.session.commit()
query = test_model.myModel.query.with_entities(test_model.myModel.code1).all()
print("my model", query, type(query))
foo = jsonify(query)
print(foo)
return foo
if __name__ == "__main__":
app.run(debug=True)
在没有安装simplejson的情况下运行python test_file.py
时,输出是
[
[
"website3.com"
],
[
"website3.com"
],
[
"website3.com"
],
[
"website3.com"
],
[
"website3.com"
],
[
"website3.com"
]
]
在安装了simplejson的情况下运行时,输出是
[
{
"code1": "website3.com"
},
{
"code1": "website3.com"
},
{
"code1": "website3.com"
},
{
"code1": "website3.com"
},
{
"code1": "website3.com"
},
{
"code1": "website3.com"
},
{
"code1": "website3.com"
}
]
总之,这可能是关于simplejson和flask sqlalchemy之间的交互作用吧?刚用烧瓶碰到它
问题是在运行ubuntu的机器上安装了simplejson python包。它重写pythonjson库,导致它返回一个对象数组,而不是调用jsonify时预期的数组数组。在
相关问题 更多 >
编程相关推荐