如何在 Python 中从数据库中获取数据? 使用 Python 导入数据

已发表: 2021-03-09

在当今以技术为主导的工作环境中,数据分析是年轻毕业生、工程师和管理人员必须具备的一项基本技能。 在本文中,我们将介绍如何在 python 中从数据库中获取数据,并让您快速了解一些基本概念。

目录

使用Python 数据库进行数据提取

数据提取需要从各种来源检索数据,有时还会对其进行进一步处理,然后将其迁移到存储库以进行进一步分析。 因此,在此过程中会发生某种数据转换。 Python 是此类数据科学任务的领先编程语言之一。 全世界约有820 万用户使用这种通用脚本语言。

在以下指南中,我们将讨论使用开源关系数据库系统 PostgreSQL 的提取方法。 它提供了一个 ROW_TO_JSON 函数,该函数将结果集作为 JSON 对象返回,这些对象被花括号 {} 包围。 JSON 数据类型将帮助您更方便地操作查询结果。 但在开始之前,请确保您已经安装了虚拟环境,例如 psycopg2-binary。

Python 数据库基础

假设您有一个美国国家橄榄球联盟 (NFL) 的 PostgreSQL 数据库。 这将包括有关球员、教练和球队席位的信息。 此外,请注意以下详细信息以了解有关存储数据的信息:

  • 球员的数据表包含诸如 athelete_id(主键)、球员的名字和姓氏、球衣号码、体重(以 kg 为单位)、身高(以 m 为单位)以及他们的原籍国等详细信息。 它还保存着 team_id,一个表示每个运动员队伍的外键。
  • 教练的数据表具有coach_id(主键)、名字和姓氏以及team_id(引用球队表字段的外键)。
  • 最后,还有球队表,其中描述了每支足球队的名称、会议、排名以及总输赢(分为“主场”和“客场”)。 这里,主键是team_id,在上表中引用。

现在您已经熟悉了数据集,让我们探索如何编写 SQL 查询来检索团队列表。 例如,您需要根据会议和排名对足球队进行排序。 您还想提取每支球队的运动员或球员人数以及他们的教练姓名。 您可能还想知道球队在主场和客场的胜负数。

请按照以下步骤开始此过程:

选择

f.name,

f.城市,

f. 会议,

f.conference_rank,

COUNT(a.player_id) AS number_of_athletes,

CONCAT(c.first_name, ' ', c.last_name) 作为教练,

f.home_wins,

f.away_wins

来自运动员 a、团队 f、教练 c

WHERE a.team_id = f.team_id

c.team_id = f.team_id

f.name 、c.first_name、c.last_name、f.city、f.conference、f.conference_rank、f.home_wins、f.away_wins 分组

按 f.conference、f.conference_rank 排序

在此之后,您可以在我们之前提到的 JSON 函数 (ROW_TO_JSON) 中扭曲查询。 这会将数据保存到当前目录中名为 query.sql 的文件中。 现在,继续下面给出的步骤。

选择 ROW_TO_JSON(team_info) 来自 (

选择

f.name,

f.城市,

f. 会议,

f.conference_rank,

COUNT(a.athelete_id)AS number_of_atheletes,

CONCAT(c.first_name, ' ', c.last_name) 作为教练,

f.home_wins,

f.away_wins

来自运动员 a、团队 f、教练 c

WHERE a.team_id = f.team_id

c.team_id = f.team_id

f.name 、c.first_name、c.last_name、f.city、f.conference、f.conference_rank、f.home_wins、f.away_wins 分组

按 f.conference、f.conference_rank 排序

) 作为团队信息

你会发现每一行都有一个 python 字典的结构。 键只是您的查询返回的字段名称。

此外,为了避免暴露环境变量,您可以对初始化文件进行一些更改。 根据您的需要选择以下任何一种方法:

  • 对于 Windows:控制面板 → 系统 → 高级系统设置 → 高级选项卡 → 环境变量。
  • 对于类 Unix 环境:将关于您的用户名和密码的两行附加到您的初始化文件中。

有了这个,你就可以编写 python 代码了。 一开始,我们将导入一些模块和函数以防止错误。 这些语句可以帮助您实现:

导入操作系统

将 psycopg2 导入为 p

从 psycopg2 导入错误

然后,我们将通过加载 query.sql 的内容来实例化连接。 使用 open 和 read 命令打开 SQL 数据库文件,并使用 connect 函数通过指定数据库用户、密码、主机和端口号来连接 NFL 数据库。

另请阅读: GitHub 上的 Python 项目

如何在 Python 中从数据库中获取数据?

建立数据库连接后,您可以继续执行查询。 您需要使用称为“光标”的控制结构。 就像编写“cursor = conn.cursor()”和随后的“cursor.execute(query)”一样简单。 然后,结果将包含字典格式的元组列表(一个元素)。

结果 = cursor.fetchall()

在此阶段,您可以尝试迭代结果。 您可以根据需要操作内容,将它们插入或输入到电子表格、HTML 表格等中。完成时不要忘记包装和清理代码。 您可以使用 try-except-block 并添加“finally”句子来做到这一点。

当您处理大型数据集、关系或其他数据集时,您会觉得需要一些基本工具来查询表,尤其是当您还想操作结果时。 用python很容易实现这样的数据转换。

因此,大多数研究生课程都将这些技术的知识作为课程的一部分。 一些例子包括数据科学副文凭(IIIT-班加罗尔)和全球商业分析硕士证书(密歇根州立大学)。

结帐: Python 开源项目的想法

结论

在本Python 数据库教程中,我们学习了如何连接关系数据库、执行查询和导入结果。 你可以用 python 做更多的事情,并调整你的代码来做你想做的事情。

我们希望本指南可以帮助您找到一些清晰的信息并激发您的好奇心!

学习世界顶尖大学的数据科学课程。 获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。

如何使用 Python 请求从 API 中提取数据?

当您希望从 API 接收数据时,您必须从服务器发出请求,就像您与传统网站交互时一样。 我们需要使用 requests 包从使用 Python 的 API 获取数据。 在 Python 中,Requests 是用于发出 HTTP 请求的标准库。 由于它的抽象,它非常易于使用,尤其是在使用 API 时。
当我们使用 requests 库运行请求时,我们会得到一个请求对象,其中包含我们要提取的数据以及请求状态代码。 状态码告知我们请求的状态,它是我们提出的每个请求的一部分。 根据它们返回的信息,代码分为数百个不同的值。

如何将 SQLite 与 Python 连接起来?

一种。 我们必须导入 sqlite3 才能使用 SQLite。
湾。 然后,使用 connect 方法建立连接并提供您要访问的数据库的名称; 如果存在具有该名称的文件,它将被打开。 如果您未指定名称,Python 将使用提供的名称创建一个文件。
C。 之后,创建一个可以发送 SQL 命令的游标对象。 游标是一种用于遍历和检索数据库记录的控制结构。 在处理 Python 时,光标非常重要。 游标对象将用于执行所有命令。
d。 创建一个对象并在其中编写带有注释的 SQL 语句,以在数据库中创建一个表。 示例: - sql_comm = SQL 语句。
e. 运行命令轻而易举。 执行游标方法,将 sql 命令的名称作为参数传递。 将命令列表保存为 sql_comm 变量并运行它们。 完成所有任务后,通过提交将修改保存到文件,然后断开连接。

Python 对数据库有用吗?

Python 特别适合结构化表格数据,这些数据可以使用 SQL 获得,但需要额外的操作,而单独使用 SQL 很难完成。