![](/img/trans.png)
[英]Strange 502 Error in production mode with flask/jsonify/flask-sqlalchemy
[英]string error in jsonify(results) - Flask, SQLAlchemy
我正在使用一個燒瓶應用程序,該應用程序查詢我的sqlite數據庫並提取每年每個州的疾病病例數信息。 下面的路由提取正確的數據,但是由於某些原因,將不會打印出請求中的字符串,例如“ Cases_2010”,“ Rate_2010等”。 這是字符串本身還是串聯的問題? 它確實打印“狀態”字符串,之后不會再打印。
from sqlalchemy.ext.automap import automap_base
from sqlalchemy.orm import Session
from sqlalchemy import create_engine, func, desc
from flask import Flask, jsonify
import json
import numpy as np
import os
engine = create_engine("sqlite:///westnile_1.sqlite")
Base = automap_base()
Base.prepare(engine, reflect=True)
Disease_Data = Base.classes.disease_data
session = Session(engine)
app = Flask(__name__)
@app.route("/")
def home():
return(
f"Welcome to the West Nile Virus Case Report API <br>"
f"Available routes: <br>"
f"/api/v1.0/Cases_per_year_2010_2017 <br>"
f"/api/v1.0/case_totals <br>"
f"/api/v1.0/json_combined <br>")
@app.route("/api/v1.0/Cases_per_year_2010_2017")
def cases_2010_2017():
results_10 = session.query("State: " + Disease_Data.State, "Cases_2010: " + Disease_Data.Cases_2010, "Rate_2010: " + Disease_Data.Rate_2010,
"Cases_2011: " + Disease_Data.Cases_2011, "Rate_2011: " + Disease_Data.Rate_2011,
"Cases_2012: " + Disease_Data.Cases_2012, "Rate_2012: " + Disease_Data.Rate_2012,
"Cases_2013: " + Disease_Data.Cases_2013, "Rate_2013: " + Disease_Data.Rate_2013,
"Cases_2014: " + Disease_Data.Cases_2014, "Rate_2014: " + Disease_Data.Rate_2014,
"Cases_2015: " + Disease_Data.Cases_2015, "Rate_2015: " + Disease_Data.Rate_2015,
"Cases_2016: " + Disease_Data.Cases_2016, "Rate_2016: " + Disease_Data.Rate_2016,
"Cases_2017: " + Disease_Data.Cases_2017, "Rate_2017: " + Disease_Data.Rate_2017).all()
json2010 = json.dumps(results_10)
return jsonify(results_10)
由於我沒有有關ORM的任何信息,因此我假設Orm具有與表一樣的確切列數。
results_10 = session.query(Disease_Data).all() # This will return the list of Disease_Data objects
json_list= []
for result in results_10:
temp_dict = result.__dict__
temp_dict.pop('_sa_instance_state',None)
json_list.append(temp_dict)
# OR
# temp_dict = dict(result)
# temp_dict.pop('_sa_instance_state',None) # removing unwanted key
# json_list.append(dict(result)) #Either of two should work
json2010 = json.dumps(json_list)
return jsonify(results_10)
我無法在本地測試,但應該給出一個想法。
如果要保留數據格式:
column_list = Disease_Data.__table__.columns.keys()
results_10 = session.query(Disease_Data).all() # This will return the list of Disease_Data objects
json_list= []
for result in results_10:
temp_dict={}
for col in column_list:
temp_dict[col] = getattr(result,col)
json_list.append(temp_dict)
json2010 = json.dumps(json_list)
return jsonify(results_10)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.