両方のコンピュータは、同じブラウザバージョン(chrome 58.0.3029.110(64ビット))でFlaskバージョン0.12.2を実行しています。オブジェクトを含むリストを返すコンピュータは、ubuntu 14.04です。タプルを含むリストは、osx 10.11.6を実行しています。 フラスコJsonifyは、あるコンピュータ上のオブジェクトのリストと他のコンピュータ上のタプルを含むリストを返す
これは、シリアル化jsonify関数に渡されるデータの一例であるデータ [( 'CODE1'、[ 'website1.com'])、( 'CODE2'、[ 'website2.com'])]
osxマシンのブラウザコンソールの出力は、[["Code1"、["website1.com"]]、["Code2"、["website2.com"]]]
[ : "code1"、場所:["website1.com"]}、{"code": "Code2"、場所:["website2.com"]}]
EDIT: したがって、再現する手順は次のとおりです。続く。テーブルテストテーブルを使用してtest_dbを作成します。
createdb test_db
psql
=# create table testtable (code1 text, code2 text);
必要な2つのファイル
は、名前のモデルファイルですtest_model.pyfrom test_file import db
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
とtest_file.py
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)
import test_model
@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
#runs servlet, debug=true if you want to test running code
if __name__ == "__main__":
app.run(host="0.0.0.0", debug=True)
必要ピップライブラリですpsycopg2、フラスコ、フラスコ、SQLAlchemyの
simplejsonを使わずにpython test_file.pyを実行しているときにブラウザをlocalhost:5000 ouにインストールした場合tputs
[
[
"website3.com"
],
[
"website3.com"
],
[
"website3.com"
],
[
"website3.com"
],
[
"website3.com"
],
[
"website3.com"
]
]
のsimplejsonを実行している、それはそれは多分のsimplejsonとフラスコSQLAlchemyの間の相互作用についての何かであるすべてに
[
{
"code1": "website3.com"
},
{
"code1": "website3.com"
},
{
"code1": "website3.com"
},
{
"code1": "website3.com"
},
{
"code1": "website3.com"
},
{
"code1": "website3.com"
},
{
"code1": "website3.com"
}
]
すべて
を出力インストールされていますか?フラスコを使用してその両端に起こったばかりです
入力データが同じ場合は不可能です。 [編集]に[mcve]を含めるようにしてください。あなたは両方のマシンでそれを新鮮に展開しようとしましたか? – davidism
現在、このような例として取り組んでおり、両方のマシンに新しくデプロイされています。より大きなプロジェクトなので、同じ問題を再現するのに少し時間がかかるかもしれませんが、私はそれに取り組んでいます。 – Bard117
まだ[mcve]を投稿してください。あなたが言うことが実際に真実であるならば、それは私たちが修正する必要があるFlaskの巨大なバグです。しかし、私はシンプル・ジーソンが実際には何か違うものを戻していることに幾分疑念を抱いています。 – davidism