当前位置: 首页 > 知识库问答 >
问题:

把记录存到档案里

瞿兴朝
2023-03-14

我有一个小应用程序,查询数据库中的记录,需要将其转换为JSON,并将其存储在本地文件中。

我已经走到这一步了:

models.py

from flask.ext.sqlalchemy import SQLAlchemy
from app import app

app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://ajay:12345@localhost/fusion'
db = SQLAlchemy(app)

class User(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    time = db.Column(db.DateTime, default=None, index=True)

意见。派克

from models import User
from flask import render_template
from app import app
from json import dumps
from sqlalchemy.orm import class_mapper

def serialize(model):
    columns = [c.key for c in class_mapper(model.__class__).columns]
    return dict((c, getattr(model, c)) for c in columns)

@app.route('/')
def index():
    data = [ serialize(user) for user in User.query.all() ]
    file = open('data.json','w')
    json_users = dumps(data)
    file.write(json_users)
    file.close()
    return render_template('index.html', users=json_users)

我得到的错误如下:

TypeError: datetime.datetime(2011, 10, 16, 15, 14, 57) is not JSON serializable

如何进一步进行?

共有1个答案

赵景曜
2023-03-14

你必须将你的时间从用户类转换为字符串

编辑:

我有根据的猜测

time = db.Column(db.DateTime, default=None, index=True).ctime()
 类似资料:
  • 问题内容: 是否有Python文件类型可用于访问随机行而不遍历整个文件?我需要在一个大文件中搜索,无法将整个内容读取到内存中。 任何类型或方法将不胜感激。 问题答案: 这似乎只是设计的目的。一个对象为文件创建一个类似于字符串的接口: 如果您想知道,还可以将对象分配给:

  • 我有一个dotnet core 1.1 web-api,它使用ILogger登录到控制台。如果我在azure控制台的监控/诊断日志下打开应用程序日志(Blob)选项,这些日志会根据(appname)/月/日/小时被拾取并发送到blob。这很好。 但是,我的webjob使用相同的ILogger和相同的配置,它的输出没有转到这些mm/dd/hh目录。 如果我打开应用程序日志记录(文件系统),我会看到我

  • Elasticsearch 作为一个服务,本身也会记录很多日志信息。默认情况下,日志都放在 $ES_HOME/logs/ 目录里。 日志配置在 Elasticsearch 5.0 中改成了使用 log4j2.properties 文件配置,包括日志滚动的方式、命名等,都和标准的 log4j2 一样。唯一的特点是:Elasticsearch 导出了一个变量叫 ${sys:es.logs},指向你在

  • 我试图理解如何用flume-ng结尾的文件,这样我就可以把数据推到HDFS。在第一个实例中,我设置了一个简单的conf文件: 这是一个测试,我的期望是我将在控制台上看到输出。我使用以下命令运行它: 我得到以下输出: 2005年12月12日11:01:07信息生命周期。生命周期管理程序:启动生命周期管理器1 12/12/05 11:01:07 INFO节点。FlumeNode:Flume节点启动-尾

  • 我正在使用Azure Webapp(Windows)托管nodejs应用程序。在我的应用程序中,我使用bunyan作为我的日志库。 我已通过web门户将应用程序登录配置为Azure Storage博客。我选择了存储帐户、blob容器等。 如果我转到日志流,我会在门户中看到我应用程序中的日志。但是,这些日志不会存储在选定的Blob容器中。有一个文件夹(在容器内)是由应用程序服务创建的,它会记录一些事

  • 根据AWS文档,路由53应该是权威名称服务器。如果example.com是我购买的域名,并且我www.example.com指向IP192.0.2.4,那么顶级域名服务器(“. com”的NS)将存储权威域名之间的映射域名example.com和域名example.com的名称服务器(ANS)如下所示: example.com.172800 IN NSns1.awsdns.com 所以,这是NS记