我目前还不熟悉编程,所以问题是我无法将csv文件导入到我的PostgreSQL数据库中,下面是我的代码:
导入os导入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)有人能帮我..。拜托!
发布于 2020-08-08 07:22:31
尝试用(`)或可能(‘’)替换双引号(")。
这似乎是我遇到过的类似问题:
sql_string = "SELECT a.'ID' From table1 a " (throws below error)
vs
sql_string = "SELECT a.`ID` From table1 a " (executes properly)ProgrammingError: (pymysql.err.ProgrammingError) (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''ID' From table1 a' at line 1")
[SQL: SELECT a.'ID' From table1 a ](有关此错误的背景信息:http://sqlalche.me/e/f405)
发布于 2021-04-10 17:07:41
我想你不再试图找到解决这个问题的方法了。
然而,for 1618的回应使我找到了解决我的问题的办法。
似乎我创建了此错误:(此错误的背景位置为:http://sqlalche.me/e/14/9h9h)
当我将数据输入到要求不同数据类型的列中时。
下面的这些列在输入以下相关数据时创建了错误:
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将我的数据更改为:
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": "{}"数据成功地输入到数据库。
我相信这个错误可能意味着其他的事情。但是,它似乎解决了我的问题。
发布于 2021-12-17 09:30:52
我也遇到了这个问题(关于这个错误的背景是:https://sqlalche.me/e/14/9h9h),但原因不同。
当我更改字符串的长度限制(Hashed_password)时,如下所示:
类用户(基本):hashed_password =列(String(32),nullable=False)
至
hashed_password =列(String(128),nullable=False)
没有错误
原因是"len(hashed_password)"=61,即> 32,和128 > 61,这是可以的。
我的英语很差,希望你能理解我说的话。
https://stackoverflow.com/questions/62313254
复制相似问题