python - 此错误的背景:http://sqlalche.me/e/9h9h
问题描述
我目前是编程新手;所以问题是我无法将 csv 文件导入我的 PostgreSQL 数据库,下面是我的代码:
import os import csv
from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker
engine = create_engine(os.getenv("DATABASE_URL"))
db = scoped_session(sessionmaker(bind=engine))
def main():
b = open("books.csv")
reader = csv.reader(b)
for isbn, title, author, year in reader:
db.execute("INSERT INTO books1(isbn, title, author, year) VALUES(:isbn, :title, :author,
:year)",
{"isbn":isbn, "title":title, "author":author, "year":year})
print(f"{isbn} Added to {title} ")
db.commit()
if __name__ == "__main__":
main()
错误显示为
[SQL: INSERT INTO books1(isbn, title, author, year) VALUES(%(isbn)s, %(title)s, %(author)s, %
(year)s)]
[parameters: {'isbn': 'isbn', 'title': 'title', 'author': 'author', 'year': 'year'}]
(Background on this error at: http://sqlalche.me/e/9h9h)
任何人都可以帮助我...拜托!
解决方案
I imagine you are no longer trying to find an for this problem.
However, Ksh1618's response led me to the solution for mine.
It appears I created this error:(Background on this error at: http://sqlalche.me/e/14/9h9h)
When I was inputting data into columns that were asking for different datatypes.
EX: These Columns below created the error when I input the respective data below:
Role = Column(String(32))
Name = Column(String(32))
Comment = Column(String(1024))
Context = Column(String(1024))
Engine = Column(String(32))
Tokens = Column(Integer)
Temp = Column(Float)
Top_P = Column(Float)
Stop = Column(String(32))
Pres_Pen = Column(Float)
Freq_Pen = Column(Float)
Echo = Column(String(32))
N = Column(Integer)
Stream = Column(String(32))
Logprobs = Column(Integer)
Best_Of = Column(Integer)
Logit_Bias = Column(Integer)
"Role": "Test_Role",
"Name": "Test_Name",
"Comment": "Test_Comment",
"Context": "message",
"Engine": "engine",
"Tokens": 64,
"Temp": 0.1,
"Top_P": 0.1,
"Stop": "[\n]",
"Pres_Pen": 0.1,
"Freq_Pen": 0.1,
"Echo": "string",
"N": 1,
"Stream": "string",
"Logprobs": 1,
"Best_Of": 1,
"Logit_Bias": 1
Changed my data to this:
Role = Column(String(32))
Name = Column(String(32))
Comment = Column(String(32))
Context = Column(String(32))
Engine = Column(String(32))
Tokens = Column(String(32))
Temp = Column(String(32))
Top_P = Column(String(32))
Stop = Column(String(32))
Pres_Pen = Column(String(32))
Freq_Pen = Column(String(32))
Echo = Column(String(32))
N = Column(String(32))
Stream = Column(String(32))
Logprobs = Column(String(32))
Best_Of = Column(String(32))
Logit_Bias = Column(String(32))
"Role": "Test_Role",
"Name": "Test_Name",
"Comment": "Test_Comment",
"Context": "message",
"Engine": "engine",
"Tokens": "64",
"Temp": "0.1",
"Top_P": "0.1",
"Stop": "None",
"Pres_Pen": "0.1",
"Freq_Pen": "0.1",
"Echo": "False",
"N": "1",
"Stream": "False",
"Logprobs": "1",
"Best_Of": "1",
"Logit_Bias": "{}"
Data successfully input into the database.
I'm sure this error can mean other things. But, it seemed to fix my problem.
推荐阅读
- c# - 遇到“ExecuteNonQuery”错误时如何设置 SqlCommand 对象的 Connection 属性?
- react-native - [TypeError:null 不是对象(评估 '_this.state.confirm.confirm')]
- javascript - 如何在代码镜像中突出显示整行
- android - 无法在尚未调用 Looper.prepare()- Android-5 中的 Spinner 的线程内创建处理程序
- amazon-web-services - Apache Airflow - AWS MFA 身份验证
- r - 如何创建距离表的直方图
- powerbi - Change rows for matrix using radio buttons (DAX) in PowerBI
- c - 如何在C中初始化结构数组
- google-cloud-platform - Google Cloud DLP 使用确定性加密重新识别 PII 数据
- android - 由于 FragmentManagerState 导致的 TransactionTooLargeException