jython zxJDBC: Как получить словарь из курсора? - PullRequest
3 голосов
/ 31 мая 2011

Я использую JDBC для подключения своего jython к разнородному набору баз данных.Используя курсор, я получаю строки в виде списка, и курсор также знает метаданные (cursor.description).

Обычно вы получаете строку в виде списка в результате запроса:

print resultlist(4)

И вы должны знать порядок столбцов в схеме заранее.

Как я могу получить что-то вроде

print resultset[CustomerName]

для печати имени клиента?

1 Ответ

2 голосов
/ 05 июня 2011

Как насчет dict_cursor из этого вопроса: Django Бэкэнд-нейтральный DictCursor ?

Описание того, что у меня работает (Jython 2.5.2):

def dict_cursor(cursor):
    description = [x[0] for x in cursor.description]
    for row in cursor:
        yield dict(zip(description, row))

conn = zxJDBC.connect(db, user, pwd, driver)
cursor = conn.cursor()

query = "..."
cursor.execute(query)

dc = dict_cursor(cursor)
for d in dc:
    print d["SomeColumnName"]
    ...

cursor.close()
conn.close()
...