首页 > 数据库 >Python执行PG数据库查询语句:以Markdown格式打印查询结果

Python执行PG数据库查询语句:以Markdown格式打印查询结果

时间:2024-05-13 19:19:43浏览次数:17  
标签:Markdown Python 数据库 查询 df rows conn

哈喽,大家好,我是木头左!

1. 准备工作

在开始之前,需要确保已经安装了psycopg2pandas这两个Python库。psycopg2是Python的一个PostgreSQL数据库适配器,用于连接和操作PostgreSQL数据库。而pandas则是一个强大的数据处理库,将用它来处理查询结果并以Markdown格式打印。

pip install psycopg2 pandas

2. 建立数据库连接

需要使用psycopg2库来连接到PostgreSQL数据库。这需要数据库的地址、端口、数据库名、用户名和密码。

import psycopg2

def create_conn():
    conn = psycopg2.connect(
        host="your_host",
        database="your_database",
        user="your_user",
        password="your_password"
    )
    return conn

3. 执行查询语句

接下来,需要执行一个查询语句。在这个例子中,假设要查询的表名为your_table,并且希望获取该表的所有数据。

def execute_query(conn):
    cur = conn.cursor()
    cur.execute("SELECT * FROM your_table")
    rows = cur.fetchall()
    return rows

4. 将查询结果转换为DataFrame

现在,需要将查询结果转换为pandasDataFrame对象,以便可以更方便地处理数据。

import pandas as pd

def rows_to_dataframe(rows):
    df = pd.DataFrame(rows, columns=[desc[0] for desc in cur.description])
    return df

5. 以Markdown格式打印查询结果

需要将DataFrame对象以Markdown格式打印出来。这里使用tabulate库,它可以将DataFrame对象转换为各种文本格式,包括Markdown。

from tabulate import tabulate

def print_dataframe(df):
    print(tabulate(df, headers='keys', tablefmt='pipe', showindex=False))

6. 主函数

现在可以将以上的所有步骤放在一个主函数中,然后调用这个函数来执行查询并打印结果。

def main():
    conn = create_conn()
    rows = execute_query(conn)
    df = rows_to_dataframe(rows)
    print_dataframe(df)

7. 限制列宽

为了确保每一列只显示前100个字符,可以在print_dataframe函数中添加一些代码来实现这个功能。

def print_dataframe(df):
    for col in df.columns:
        max_length = min(100, len(max(df[col].astype(str), key=len)))
        df[col] = df[col].apply(lambda x: str(x)[:max_length])
    print(tabulate(df, headers='keys', tablefmt='pipe', showindex=False))

结语

以上就是如何使用Python执行PostgreSQL数据库查询语句,并将查询结果以Markdown格式打印出来的方法。希望对你有所帮助!

我是木头左,感谢各位童鞋的点赞、收藏,我们下期更精彩!

标签:Markdown,Python,数据库,查询,df,rows,conn
From: https://www.cnblogs.com/bigleft/p/18189821

相关文章

  • Python的学习
    目录页1.常用函数1.1.enumerate()函数--列举/枚举函数2.各种库的学习2.1.xlrd库2.2.openpyxl库1.常用函数1.1.enumerate()函数--列举/枚举函数enumerate()是Python中的一个内置函数,用来列举/枚举对象,用于将一个可遍历的数据对象(如列表、元组、字......
  • Java身份证识别接口集成开发示例,身份证查询接口
    人类是有情感的,人们所接触到的各种事物和信息都会被身体相应器官所接收,然后通过神经元传入大脑继而被识别,然后大脑便会产生对该事物的认知和情绪。人们大多喜欢热情、有趣的事物,对冷冰冰、枯燥、无趣的APP基本是提不起兴趣的。一个好的APP是可以打动人心、能够传递情感的,进而......
  • Markdown TMS-基于Markdown的本地测试管理系统
    MarkdownTMS简介我们通常习惯使用线的测试平台或者XMind、Excel在来管理手工测试用例。由Jetbrains公司推出的MarkdownTMS则提供了另一种管理手工测试用例的思路。相比于XMind、Excel来说,Markdown是纯文本文件,几乎不需要安装额外的软件进行查看和编辑。使用Markdown+Git即......
  • Python参考书籍
    Python参考书籍入门读物《Python基础教程》(BeginningPythonFromNovicetoProfessional)《Python学习手册》(LearningPython)《Python编程》(ProgrammingPython)《PythonCookbook》《Python程序设计》(PythonProgramming:AnIntroductiontoComputerScience)《ModernP......
  • Python-Tkinter图形化界面设计(详细教程 )
    Python-Tkinter图形化界面设计(详细教程)声明:本篇文章为转载自https://www.jianshu.com/p/91844c5bca78,在原作者的基础上添加目录导航,旨在帮助大家以更高效率进行学习和开发。Python-Tkinter图形化界面设计(详细教程)#一.图形化界面设计的基本理解#当前流行的计算机桌面应用程序......
  • Python3开发一个web项目
    准备工作#安装Web框架pipinstallDjango#创建一个项目pythondjango-admin.pystartprojectitstyle#切换目录cditstyle#创建Apppythonmanage.pystartappnovel一般一个项目有多个app,当然通用的app也可以在多个项目中使用,然后启动服务:#默认端口是800......
  • Python3+Django2配置后台管理
    前言使用Django我们只需要做一些配置,就可以实现简单的后台管理系统,下面我们以新闻系统为例子来搭建后台。创建项目切换到工作空间,执行以下命令:django-admin.pystartprojectitstyle#进入itstyle文件夹cditstyle#创建newsAppmanage.pystartappnews项目结构:......
  • Python 用断言的使用
    Python用断言的使用Python用断言的使用,有时,真正有用的语言特性得到的关注反而不多,比如内置的assert语句就没有受到重视。本文将介绍如何在中使用断言。你将学习用断言来自动检测程序中的错误,让程序更可靠且更易于调试。读到这里,你可能想知道什么是断言,以及它到底有什么好处。......
  • Python 逗号的巧用
    Python逗号的巧用如果需要在中的列表、字典或集合常量中添加或移除项,记住一个窍门:在所有行后面都添加一个逗号。还不太明白?来看一个示例。假设在代码中有下面这个由名字组成的列表:>>>names=['Alice','Bob','Dilbert']在修改这个名字列表时,通过gitdiff查看改动可能有点......
  • Python调用终端模拟红绿灯
    Python调用终端模拟红绿灯一、需求分析1.需要实现的功能(1)通过控制台输入绿灯、黄灯、红灯的时间(2)输入完成后,按回车,先绿灯倒计时,然后黄灯倒计时,然后红灯倒计时,再到绿灯倒计时,周而复始。2.对类的分析静态特征(1)三个数字:红灯、黄灯、绿灯(2)两个电子屏一个电子屏显示一个数......