Python для преобразования Tuple в значение - PullRequest
0 голосов
/ 31 мая 2018

Я пытаюсь получить количество строк в таблице с помощью

import postgresql
db = postgresql.open(...)
res = db.query("select count(1) from testdata")
print (res)

, и в результате получается

(10,)

как мне напечатать 10 ?

заранее спасибо

1 Ответ

0 голосов
/ 31 мая 2018

db.query("select count(1) from testdata") возвращает кортеж, а не одно значение.Первый аргумент этого кортежа является результатом запроса:

import postgresql
db = postgresql.open(...)
res = db.query("select count(1) from testdata")
count_result = res.next()
print (count_result)

. Этот метод считывает результат нашего запроса, используя метод next ответного запроса для получения первого результата.Поскольку мы использовали count, у нас должен быть только один ответ с количеством (см. Обработка данных с помощью Python p.212).

Как говорится в комментариях,Существуют альтернативные способы достижения этого:

import postgresql
db = postgresql.open(...)
res = db.query("select count(1) from testdata")
print (res[0]) #first argument of res is the count

import postgresql
db = postgresql.open(...)
res, = db.query("select count(1) from testdata") # first argument assigned to res
                                                 # all subsequent arguments unassigned
print (res)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...