- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在查询在 postgres db(本地)上使用 sqlalchemy 创建的表时遇到问题。
虽然我能够执行并通过以下方式接收查询结果:
SELECT * FROM olympic_games
SELECT games FROM olympic_games
ProgrammingError: (psycopg2.errors.UndefinedColumn) BŁĄD: column "games" does not exist
LINE 1: SELECT COUNT(Sport)
^
HINT: maybe you meant "olympic_games.Games".SQL: SELECT games FROM olympic_games LIMIT 5;]
(Background on this error at: http://sqlalche.me/e/f405)
table.column
访问格式,它也不起作用。我还可以通过
information_schema.columns
查看列名
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()
最佳答案
本质上,这是 PostgreSQL manual 中提到的列标识符的双引号问题。 :
Quoting an identifier also makes it case-sensitive, whereas unquoted names are always folded to lower case. For example, the identifiers FOO, foo, and "foo" are considered the same by PostgreSQL, but "Foo" and "FOO" are different from these three and each other.
DataFrame.to_sql
通过在
CREATE TABLE
处创建带双引号的列来保持区分大小写阶段。具体来说,使用replace时的以下Python Pandas代码
df.to_sql(name='olympic_games', con=engine, if_exists='replace', index_label='ID')
Sport
在 Postgres 中翻译如下是数据框中的标题 case 列:
DROP TABLE IF EXISTS public."olympic_games";
CREATE TABLE public."olympic_games"
(
...
"Sport" varchar(255)
"Games" varchar(255)
...
);
sport
与
"Sport"
不一样.请记住,在 SQL 中,双引号实际上与单引号不同,单引号在 Python 中可以互换。
"games"
与
games
相同,
Games
或
GAMES
(但不是
"Games"
或
"GAMES"
)。
df.columns = df.columns.str.lower()
df.to_sql(name='olympic_games', con=engine, if_exists='replace', index_label='ID')
SELECT "Games" FROM olympic_games
关于python - ProgrammingError : (psycopg2. errors.UndefinedColumn),同时使用 sqlalchemy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61018823/
我使用带有 Flask 的 Postgresql 使用 SQLAlchemy 有以下数据库结构: class Attendance(db.Model): id = db.Column(db.Int
我正在通过创建新项目来尝试 Pyramid。我选择 PostgreSQL 和 sqlalchemy。现在我有一个手动创建的表格“照片”和一个模型: class Photo(Base): """
我正在尝试使用查询插入数据框 engine = create_engine('scot://pswd:xyz@ hostnumb:port/db_name') dataframe.to_sql('ta
我正在使用 pandas 创建一个 python 脚本来读取具有多个行值的文件。 读取后,我需要构建这些值的数组,然后将其分配给数据框行值。 我用过的代码是 import re import nump
这是我的查询: QUERY = """ UPDATE my_table SET my_prop=:foo WHERE hello
我正在尝试查询 Version,我希望将对象返回到它们的 max_version_number 属性等于 version_number 的位置: latest_versions = \ dbS
我有这个功能。我想要获取每个项目的照片ID数组,但得到一个错误
我在尝试测试是否可以将一些记录保存到数据库中时遇到了问题。我使用 postgres.app 作为数据库。在尝试测试之前,我做了: dropdb testdb createdb testdb pytho
我正在开发一个基于 http://code.tutsplus.com/tutorials/intro-to-flask-signing-in-and-out--net-29982 的 flask 应用
在 heroku 上设置新数据库我试过 python manage migrate并得到许多与 relation already exists/does not exists 相关的异常.所以我按照这
I am getting this Exception in my browser, I have seen upto 20 posts related to this error but I cou
因此,我更改了用于我的 Django 应用程序的设备。为了更换设备,我只是将整个存储库复制粘贴到新设备,设置数据库,运行假迁移,然后当应用程序运行良好时,再次开始开发。 但是,当我开始在 Django
因此,我更改了用于我的 Django 应用程序的设备。为了更换设备,我只是将整个存储库复制粘贴到新设备,设置数据库,运行假迁移,然后当应用程序运行良好时,再次开始开发。 但是,当我开始在 Django
使用python的MySQLDB连接到MariaDB数据库;我正在运行 SELECT 的良性循环,由于某些未知原因而中断 _mysql_exceptions.ProgrammingError: (20
这是我的源代码: @app.route('/pythonlogin/register', methods=['GET', 'POST']) def register(): # Output m
模型.py class Stop(models.Model): idn = models.PositiveIntegerField(primary_key=True, unique=True)
我目前正在尝试将我的 Flask 应用程序部署到 Heroku,但我在数据库初始化期间遇到错误。 这是我的 models.py 文件: from app import app from app im
我正在使用 ipdb 调试器在本地调试多线程 Web 应用程序(Django、Plone)。通常 ipdb 似乎因为在调试提示符下发生的自动重新加载而感到困惑。生成的堆栈跟踪出现 /Users/mik
我正在尝试通过使用MRjob填充一个postgresql数据库。几天前,有人好心地建议我here将映射器分步进行。我试过但是给出了一个错误: python db_store_hadoop.py -r
我只是看不出此错误的原因。我在 phpMyAdmin 中尝试了相同的 SQL,它工作得很好,但在 Python 中尝试时失败了。 带有 SQL 查询的 Python 代码: cursor.execut
我是一名优秀的程序员,十分优秀!