Невозможно извлечь данные из таблицы postgres в файл .ods, используя python

1

Я пытаюсь собрать вывод postgres-запроса в ods файле, используя следующий код. Я создал функцию read_table которая успешно читает таблицу postgres.

def read_table()
     import psycopg2 as ps
     import sys

      con =None
      try:
      con=ps.connect("host, dbname, user,pwd....")
      cur=con.cursor()
      cur.execute("Select * from table_name")
      rows=cur.fetchall()
      for(row in rows):
            print(row)
      cur.close()
      except (Exception, ps.DatabaseError) as error:
      print(error)
      finally:
          if con is not None:
             con.close()

  from collections import OrderedDict
  from pyexcel_ods import save_data
  data=OrderedDict()
  raw_data=read_table()
  raw_data.update({'DATA':raw_data})
  save_data("/home/myfile.ods", raw_data)

Таблица печатается на оболочке python, но она не записывается в файл.ods. Это дает следующую ошибку:

raw_data.update({'DATA':raw_data})
AttributeError: 'NoneType' object has no attribute

Как сохранить и извлечь таблицу в ods файле? Все пакеты и модули установлены, но все же я получаю эту ошибку.

Я новичок в питоне, поэтому, пожалуйста, направляйте меня. Я использую базу данных Postgres на Ubuntu, используя Idle3.

  • 0
    Добро пожаловать в Stackoverflow. Пожалуйста, измените ваш вопрос, чтобы уточнить описание вашей проблемы. Это должно помочь вам найти больше ответов. Для руководства, пожалуйста, проверьте, как спросить страницу и как создать минимальный пример . И возьми тур!
Теги:
ods

1 ответ

0
Лучший ответ

Ваш метод raw_data ничего не возвращает. Вместо того, чтобы печатать строки, вы хотите вернуть их или получить их так: return row или yield row вместо print(row)

Тем не менее, вы можете сделать то, что вам нужно, в нескольких строках кода с помощью библиотеки pandas: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_sql_query.html https://pandas.pydata.org/панды-документы/стабильный/полученные /pandas.DataFrame.to_excel.html

  • 0
    Да, «строка выхода» решила проблему и извлекла записи. Большое спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню