Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 类型错误:<;0x3ee9890处的sqlalchemy.sql.elements.ColumnClause;日期时间>;不可序列化_Python_Sqlalchemy - Fatal编程技术网

Python 类型错误:<;0x3ee9890处的sqlalchemy.sql.elements.ColumnClause;日期时间>;不可序列化

Python 类型错误:<;0x3ee9890处的sqlalchemy.sql.elements.ColumnClause;日期时间>;不可序列化,python,sqlalchemy,Python,Sqlalchemy,我正在尝试使用sqlalchemy编写一个GETAPI。基线数据库是postgresSQL。 我的datetime列未序列化json。你能帮我解决这个问题吗 型号类别: 型号\rpt.py from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy() class RptModel(db.Model): __tablename__='rpt_detail' id = db.Column(db.Integer, pr

我正在尝试使用sqlalchemy编写一个GETAPI。基线数据库是postgresSQL。 我的datetime列未序列化json。你能帮我解决这个问题吗

型号类别: 型号\rpt.py

from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()

class RptModel(db.Model):

      __tablename__='rpt_detail'

      id = db.Column(db.Integer, primary_key=True)
      user_nm = db.Column(db.VARCHAR(100), nullable=False)
      created_dt = db.column(db.DateTime(timezone=True))

      def __init__(self, _id, user_nm, created_dt):
           self.id = _id
           self.user_nm = user_nm
           self.created_dt = created_dt

      def json():
           return {'id': self.id, 'user_nm': self.user_nm, 'created_dt': self.created_dt}

      @classmethod
      def get_rpt_by_id(Cls, id):
          return Cls.query.filter_by(id=id).first()
from flask_restful import Resource
from models.rpt import RptModel

class GetRpt(Resource):
    def get(self, id):
        rpt = RptModel.get_rpt_by_id(id)
        if rpt:
           return rpt.json(), 200
        return {'message': 'rpt not found'}, 404
from flask import Flask
from flask_restful import Api
from resources.rpt import GetRpt

app = Flask(__name__)

app.config['POSTGRESQL_USER'] = 'AAAA'
app.config['POSTGRESQL_PASSWORD'] = 'BBBB'
app.config['POSTGRESQL_HOST'] = 'CCCC.DDD.COM'
app.config['POSTGRESQL_DB'] = 'EEEE'

postgres_db_uri = 'postgresql://'+app.config['POSTGRESQL_USER']+':'+app.config['POSTGRESQL_PASSWORD']+'@'+app.config['POSTGRESQL_HOST']+'/'+app.config['POSTGRESQL_DB']

app.config['SQLALCHEMY_DATABASE_URI'] = postgres_db_uri
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

api = APi(app)
api.add_resource(GetRpt, 'rpt/<string:id>')

if __name__='__main__':
    from flask_sqlalchemy import SQLAlchemy
    db = SQLAlchemy()
    db.init_app(app)
    app.run(debug=True)
资源类 资源\rpt.py

from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()

class RptModel(db.Model):

      __tablename__='rpt_detail'

      id = db.Column(db.Integer, primary_key=True)
      user_nm = db.Column(db.VARCHAR(100), nullable=False)
      created_dt = db.column(db.DateTime(timezone=True))

      def __init__(self, _id, user_nm, created_dt):
           self.id = _id
           self.user_nm = user_nm
           self.created_dt = created_dt

      def json():
           return {'id': self.id, 'user_nm': self.user_nm, 'created_dt': self.created_dt}

      @classmethod
      def get_rpt_by_id(Cls, id):
          return Cls.query.filter_by(id=id).first()
from flask_restful import Resource
from models.rpt import RptModel

class GetRpt(Resource):
    def get(self, id):
        rpt = RptModel.get_rpt_by_id(id)
        if rpt:
           return rpt.json(), 200
        return {'message': 'rpt not found'}, 404
from flask import Flask
from flask_restful import Api
from resources.rpt import GetRpt

app = Flask(__name__)

app.config['POSTGRESQL_USER'] = 'AAAA'
app.config['POSTGRESQL_PASSWORD'] = 'BBBB'
app.config['POSTGRESQL_HOST'] = 'CCCC.DDD.COM'
app.config['POSTGRESQL_DB'] = 'EEEE'

postgres_db_uri = 'postgresql://'+app.config['POSTGRESQL_USER']+':'+app.config['POSTGRESQL_PASSWORD']+'@'+app.config['POSTGRESQL_HOST']+'/'+app.config['POSTGRESQL_DB']

app.config['SQLALCHEMY_DATABASE_URI'] = postgres_db_uri
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

api = APi(app)
api.add_resource(GetRpt, 'rpt/<string:id>')

if __name__='__main__':
    from flask_sqlalchemy import SQLAlchemy
    db = SQLAlchemy()
    db.init_app(app)
    app.run(debug=True)
app.py

from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()

class RptModel(db.Model):

      __tablename__='rpt_detail'

      id = db.Column(db.Integer, primary_key=True)
      user_nm = db.Column(db.VARCHAR(100), nullable=False)
      created_dt = db.column(db.DateTime(timezone=True))

      def __init__(self, _id, user_nm, created_dt):
           self.id = _id
           self.user_nm = user_nm
           self.created_dt = created_dt

      def json():
           return {'id': self.id, 'user_nm': self.user_nm, 'created_dt': self.created_dt}

      @classmethod
      def get_rpt_by_id(Cls, id):
          return Cls.query.filter_by(id=id).first()
from flask_restful import Resource
from models.rpt import RptModel

class GetRpt(Resource):
    def get(self, id):
        rpt = RptModel.get_rpt_by_id(id)
        if rpt:
           return rpt.json(), 200
        return {'message': 'rpt not found'}, 404
from flask import Flask
from flask_restful import Api
from resources.rpt import GetRpt

app = Flask(__name__)

app.config['POSTGRESQL_USER'] = 'AAAA'
app.config['POSTGRESQL_PASSWORD'] = 'BBBB'
app.config['POSTGRESQL_HOST'] = 'CCCC.DDD.COM'
app.config['POSTGRESQL_DB'] = 'EEEE'

postgres_db_uri = 'postgresql://'+app.config['POSTGRESQL_USER']+':'+app.config['POSTGRESQL_PASSWORD']+'@'+app.config['POSTGRESQL_HOST']+'/'+app.config['POSTGRESQL_DB']

app.config['SQLALCHEMY_DATABASE_URI'] = postgres_db_uri
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

api = APi(app)
api.add_resource(GetRpt, 'rpt/<string:id>')

if __name__='__main__':
    from flask_sqlalchemy import SQLAlchemy
    db = SQLAlchemy()
    db.init_app(app)
    app.run(debug=True)
当我试图从邮递员那里得到这个时,我得到了一个错误

TypeError: <sqlalchemy.sql.elements.ColumnClause at 0x3ee9890; DATETIME> is not JSON serializable
TypeError:不可序列化JSON

我无法将创建的_dt字段转换为JSON格式。任何人都可以提供解决方案。

我认为您的代码中缺少引号。你能分享完整的错误信息吗?请包括完整的回溯(格式正确)和一个工作示例。例如,您的
json()
方法定义缺少所需的
self
参数。