Python: PostgreSQL выбранные строки обрабатывают их в структуре, похожей на класс данных - PullRequest
0 голосов
/ 04 февраля 2020

Я ищу SQL, а не пакет NO SQL для Python и PostgreSQL.

Я посмотрел на psycopg2, он для меня слишком элементарный, потом pymon go, это пакет NO SQL, затем SQLAlchemy -> идеальная обработка записей, но NO SQL ....

  1. Я новичок в Python, прости меня ...
  2. Мне нравится новая структура класса данных для Python !!
  3. Я из VB6, WinDev и PHP, ищу хорошее начало для Python и PostgreSQL

Мне нравится такая структура базы данных:

from dataclasses import dataclass
from typing import List

@dataclass
class c_Country:
    CountryDescription: str = None

Countries = [c_Country("Austria")]
Countries += [c_Country("Germany")]

for Country in Countries[:]:
    print("Country: " + Country.CountryDescription)

Конечно, я не добавляю "Страны" вручную, вместо этого получаю ее из базы данных PostgreSQL:

import psycopg2

connection = psycopg2.connect(user = "test",
                                  password = "test",
                                  host = "127.0.0.1",
                                  port = "5432",
                                  database = "test")

cursor = connection.cursor()

postgreSQL_select_Query = 'SELECT "CountryDescription" FROM "Countries"'

cursor.execute(postgreSQL_select_Query)

Countries = cursor.fetchall()

for Country in Countries:
    #NOT row[0] instead i like to write Country.CountryDescription
    print("Country = ", row[0], "\n")
  1. Как мне установить набор записей в классе данных?
  2. Нужно ли переходить на другой пакет (для меня это не проблема).
  3. Может быть это можно решить с помощью psycopg2?

Редактировать: Спасибо Морису Мейеру:

import psycopg2
from psycopg2.extras import NamedTupleCursor

connection = psycopg2.connect(user = "test",
                                  password = "test",
                                  host = "127.0.0.1",
                                  port = "5432",
                                  database = "test",
                                  cursor_factory=NamedTupleCursor)

cursor = connection.cursor()

postgreSQL_select_Query = 'SELECT "CountryDescription" FROM "Countries"'

cursor.execute(postgreSQL_select_Query)

Countries = cursor.fetchall()

for Country in Countries:
    print("Country = ", Country.CountryDescription, "\n")

Кто-нибудь найдет лучшее решение?

Твое

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...