2017-10-16 11 views
1

pyodbcを使用してSQLデータベースからデータを選択すると問題が発生します。pyodbcは1つのアイテムのみを返すクエリの単純な(スカラー)値を返します

[(55.0)]

私は純粋な数は(ノー「[」または「(」私は後でそれを新しいものを計算した後、別のテーブルに挿入することができたいと思います。私は、この例では、単一の行を含む(行のリストを持っているので、あなたは[(55.0,)]を持って

rows = conn.execute("SELECT price from PG").fetchall() 
print(rows[:1]) 
+0

ここですべてのレコードを取得しますが、最初のレコードのみを印刷していますか? –

答えて

1

:それは些細だと確信していますが、私はちょうどどのように把握することができていない以下は、私が使用していたコードです)、そして各行はタプル(1つの要素を持つ、を選択したので)。あなたはできるでしょう

しかし、1つだけを選択するためにすべての行をフェッチすると、おそらくあなたのクエリを再考する必要があります。将来の読者のために

1

注:pyodbcカーソルオブジェクトがfetchval方法があります

fetchval()メソッドは、結果がある場合、最初の行の最初の列を返し、それ以外の場合はNoneを返します。

(これは、.NET ExecuteScalar()方法と同様である。)

ので、代わりの

row_count = crsr.execute("SELECT COUNT(*) FROM TableName").fetchone()[0] 

のようなものをやって私たちは

row_count = crsr.execute("SELECT COUNT(*) FROM TableName").fetchval() 

を行うことができますそれは持っていますNoneを返すという利点があります(例外)を返します。

関連する問題