繁体   English   中英

我正在尝试使用 python 从 postgressql 中的列中提取一个值。 但我总是收到这个错误:

[英]I am trying to extract a values from column in postgressql with python. But i always get this error :

此子句的类型错误布尔值未定义用于检索的我的代码片段:

import psycopg2
from sqlalchemy import text

connection = psycopg2.connect(user="postgres",
                              password="admin",
                              host="localhost",
                              port="5432",
                              database="myDB")

db = connection.cursor()
query = text("""
     SELECT input, input_type, value, output
     FROM value_rules
 """)
result = db.execute(query).fetchone()
print(result)

我不明白这是一个简单的查询,我不知道我在做什么错。

检查图像

结果 = db.execute(query).fetchone()

它在不使用来自 sqlalchemey 的文本的情况下抛出 None 输出

我觉得这很难相信。

db.execute() 返回 None。 它不会自行返回,因此您不能像这样链接调用。 None 没有名为“fetchone”的方法。 所以你会得到AttributeError: 'NoneType' object has no attribute 'fetchone' 这与“无输出”不同。

使用 sqlalchemy 中的“文本”唯一能为您做的就是在您有机会发现真正的错误之前抛出一个不同的错误。

如果你这样做:

db.execute(query)
result = db.fetchone()
print(result)

然后得到“无”这个词的输出(不是指无的错误),这意味着数据库表是空的。

似乎db.execute并不清楚如何处理“ .TextClause子句,直接表示文本 SQL 字符串”类型的对象 - 来自.TextClause () 方法调用的 text() 文档。

将 .execute() 的参数从文本对象更改为普通字符串按预期工作,更改为

...
query = """
     SELECT input, input_type, value, output
     FROM value_rules
 """
 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM