如何从烧瓶中的sqlite返回json [builtins.TypeError]

时间:2018-03-31 10:17:13

标签: python json python-3.x sqlite flask

我尝试从我的数据库中的json列表返回城市但是在执行代码并打开/ city端点后,浏览器返回builtins.TypeError而不是[" city1"," city2&#34 ;," city3",...]

from flask import (
    Flask,
    g,
    redirect,
    render_template,
    request,
    url_for,
    jsonify,
)
import sqlite3

app = Flask(__name__)


DATABASE = 'database.db'


def get_db():
    db = getattr(g, '_database', None)
    if db is None:
        db = g._database = sqlite3.connect(DATABASE)
        db.row_factory = sqlite3.Row
    return db


@app.teardown_appcontext
def close_connection(exception):
    db = getattr(g, '_database', None)
    if db is not None:
        db.close()     

@app.route('/city')
def city_list():
    db = get_db()
    data = db.execute('SELECT city FROM city').fetchall()

    return jsonify(data)

你知道我犯了什么错误以及如何解决它吗?当我将它返回到render_template和for循环时,一切正常。

1 个答案:

答案 0 :(得分:1)

.append()始终返回None,因为它会就地修改。

但是我看不出你为什么要打电话追加;这里没有什么可以追加的。只需返回jsonified数据:

return jsonify(list(data))

(事实上,您可能甚至不需要列表 - 只需jsonify(data)即可。)