我想将值从PostgreSQL插入到SQLite。值是带空格的列名。我的代码是:
def copy_videos():
create_table_videos()
query1 = run_query("SELECT * FROM videos")
with local_engine.connect() as conn:
query2 = f"INSERT INTO videos values (:video_id, :title, \":length (min)\" , :category_id, :created_at)"
conn.execute(text(query2), query1)
query = "SELECT * FROM videos as videos"
rows = conn.execute(text(query))
# conn.commit()
for x in rows.all():
return(x['videos'])
print(copy_videos())
输出:
[SQL:INSERT INTO INVERSIONS VALUES(?,?,“?(MIN)”,?,?)][参数:[{‘VIDEO_ID’:‘132f767c-2507-4de8-8609-0268c7c2c651’,‘标题’:‘时尚篮秃顶椭圆形字形’,‘长度(分钟)’:41.9313587667618,‘CATEGORY_ID’:2.0,...(截断246953个字符)...Eccle打磨Mind Coupe‘,’长度(分钟)‘:55.7423979070126,’类别ID‘:15.0,’Created_at‘:日期时间.日期时间(2014,7,19,18,45,40,980416)}]]
1条答案
按热度按时间edqdpe6u1#
不建议有这样的专栏。最佳解决方案:将列重命名为LENGTH_MIN(或类似的名称)
如果你不能做到这一点,我会推荐以下几点:
1.在对postgres的查询中选择使用双引号,然后使用关键字
as
重命名:query1 = run_query('select video_id, title, "length (min)" as length_min, category_id, created_at from videos')
1.将您的问题2更改为:
query2 = "INSERT INTO videos (video_id, title, length_min , category_id, created_at) values (:video_id, :title, :length_min , :category_id, :created_at)"