python-3.x - Python3不是 JSON 可序列化的
问题描述
Python3.7
我有以下 GET 端点来返回数据库中的数据,但不断得到
{
"code": 400,
"message": "Exception in _query: <sqlite3.Row object at 0x10fcbb4b0> is not JSON serializable"
}
这是代码。我一直在尝试许多不同的解决方案,但没有一个有效。有什么想法吗?
有什么办法可以打印出 sqlite3 数据?当我做
print(entries)
我会回来
也是。有什么想法吗?谢谢!
# all the imports
import os
import sqlite3
from flask import Flask, request, session, g, redirect, url_for, abort, \
render_template, flash
from .response import Response
app = Flask(__name__) # create the application instance :)
app.config.from_object(__name__) # load config from this file , flaskr.py
import json
import requests
@app.route('/table_result', methods=['GET'])
def table_result():
try:
db = get_db()
cur = db.execute("SELECT name FROM mouse_tracking; ")
entries = cur.fetchall()
# return Response(200, json.dumps(entries)).payload()
return json.dumps(entries)
except sqlite3.Error as e:
return Response(400, "Database error: %s" % e).payload()
except Exception as e:
return Response(400, "Exception in _query: %s" % e).payload()
解决方案
(我还不能评论)你用光标了吗?
def table():
try:
db = sqlite3.connect('db.db')
cursor = db.cursor()
cursor.execute("SELECT name FROM db")
entries = cursor.fetchall()
return jsonify(json.dumps(entries))
except Exception as e:
return Response(400, "Exception: %s" % e).payload()
您应该使用 db.cursor() 在数据库上执行命令
推荐阅读
- java - 使用 SQL 和 Java 程序提高性能
- javascript - 为多个 div 元素的左边框生成随机颜色
- python - 了解 scipy.signal.spectrogram() 的输出
- email - 无法解析 NULL 驱动流明 5.6
- javascript - Javascript:Unshift() 导致无限循环,但不明白为什么
- docker - Solr Docker 文件的 Slim Alpine 和常规标签之间的区别
- html - 防止浮动图像在 div 中移动居中的标题
- algorithm - 返回特定圆中 k 个元素的组合的算法
- python - 获取图像中包含鼠标光标下单词的矩形
- android - 在 Android 应用程序的 FrameLayout 中“封装”地图