我在查询使用 sqlalchemy 在 postgres db(本地)上创建的表时遇到问题。
虽然我能够执行并接收查询结果:
SELECT * FROM olympic_games
当我尝试访问单个列或对表执行任何其他操作时收到错误消息:
SELECT games FROM olympic_games
错误消息是(从波兰语翻译的几句话):
编程错误:(psycopg2.errors.UndefinedColumn)BŁĄD:列“游戏”不存在
第 1 行:选择计数(运动)
^
提示:也许您的意思是“olympic_games.Games”。
SQL:从 olympic_games LIMIT 5 中选择游戏;]
(此错误的背景位于:http://sqlalche.me/e/f405)
总而言之,该程序看不到或无法访问特定列,并显示它不存在。
我尝试访问table.column
格式,效果不太好。我还可以通过查看列名称information_schema.columns
数据 (.csv) 已加载pd.read_csv
, 进而DataFrame.to_sql
。代码如下,感谢帮助!
engine = create_engine('postgresql://:@:/olympic_games')
with open('olympic_athletes_2016_14.csv', 'r') as file:
df = pd.read_csv(file, index_col='ID')
df.to_sql(name = 'olympic_games', con = engine, if_exists = 'replace', index_label = 'ID')
两个执行命令都返回相同的错误:
with engine.connect() as con:
rs = con.execute("SELECT games FROM olympic_games LIMIT 5;")
df_fetch = pd.DataFrame(rs.fetchall())
df_fetch2 = engine.execute("""SELECT games FROM olympic_games LIMIT 5;""").fetchall()