【发布时间】:2018-06-27 12:49:34
【问题描述】:
我正在使用一个烧瓶应用程序,该应用程序查询我的 sqlite 数据库并提取有关每年每个州的疾病病例数的信息。下面的路由提取了正确的数据,但由于某种原因,不会打印出请求中的字符串,例如“Cases_2010”、“Rate_2010 等”。这是字符串本身的问题还是连接的问题?它确实打印了“State”字符串,之后就没有了。
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)
【问题讨论】:
-
您的表是否与 State, Cases_2010 的列名相同?然后,您可以轻松地将实际上是元组的结果对象转换为 dict/json。
-
是的,表中的列名相同。如何转换成 dict/json?
标签: python string flask flask-sqlalchemy