如何解决尝试使用SQLAlchemy将嵌套列表保存在Postgresql DB中时出错
我正在使用flask
开发一个flask-restx
应用程序,以使用list
将嵌套的RDS
保存到在sqlalchemy
上托管的PostgreSQL数据库中。每个嵌套的{{ 1}}将在表格中排成一行。假设以下嵌套的list
list
我正尝试将其插入数据库,如下所示:
csv_json_response = [
[
1577837700,63.2
],[
1577838600,61.0
],[
1577839500,58.9
],[
1577840400,57.0
],[
1577841300,55.3
]
]
import sqlalchemy as db
if (type(csv_json_response) is list and len(csv_json_response) > 0):
db.session.bulk_insert_mappings(Upload,csv_json_response)
elif (type(csv_json_response) is dict):
item = Upload(**csv_json_response)
print(item)
db.session.add(item)
print('Data ready')
db.session.commit()
print('Data dumped into the dummy DB')
在哪里
Upload
当我尝试运行它时,它引发以下错误:
class Upload(db.Model):
__tablename__ = "user_uploaded_CSV"
id = db.Column(db.Integer,primary_key=True)
timestamp = db.Column(db.Integer,nullable=False)
value = db.Column(db.Float(precision=2),nullable=False)
我在做什么错?任何帮助表示赞赏。
解决方法
bulk_insert_mappings(mapper,mappings)
映射是词典的序列。您的映射(csv_json_response
)是一个列表序列。因此您应该更改csv_json_response
。
https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.bulk_insert_mappings
csv_json_response = [
{
"timestamp": 1577837700,"value": 63.2
},{
"timestamp": 1577838600,"value": 61.0
},...
]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。