psycopg2查询返回None

时间:2017-12-11 04:55:30

标签: python postgresql psycopg2

我是python和编程的新手。这段代码最终将用于更大的应用程序中。我提前为任何错误道歉。我试图从postgresql数据库中的表做一个简单的查询。唯一的结果是无。即使我知道那里有数据。提前感谢您的帮助。

import psycopg2

def connect():
    """Connects to the database so you can query the stats you require"""

    conn= psycopg2.connect("dbname='Nascar_Stats' user='postgres' \
                       host='localhost' password='xxxxxxxx'")
    print('Connected to DB')

    cur = conn.cursor()
    cur.execute("SELECT 'Track_Length' FROM t_tracks \
                     WHERE 'Track_ID' = 'Daytona';")

    length = cur.fetchone()
    print('Track Length = ', length)

    conn.close()

1 个答案:

答案 0 :(得分:1)

问题是Track_LengthTrack_ID周围的引号。由于引号,列名称当前被解释为实际字符串,导致字符串Track_IDDaytona之间的比较不满意。这导致0行与查询匹配,length获得None值。

删除列名称周围的单引号:

cur.execute("""
    SELECT Track_Length 
    FROM t_tracks
    WHERE Track_ID = 'Daytona'
""")