Python办公自动化之PostgreSQL篇3——利用Python读取一张表写入PostgreSQL

  • 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手

  • 🏳️‍🌈 博客主页:一晌小贪欢的博客主页

  • 👍 该系列文章专栏:Python办公自动化专栏

  • 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏

  • ❤️ 欢迎各位佬关注! ❤️

转眼我们【Python办公自动化之PostgreSQL篇】已经到了最后一篇了——【写入】篇了

今天写入讲完,我们3篇就结束啦!

三篇分别是(点击可查看):1、安装篇;2、导入&读取篇;3、以及今天的写入篇

1、首先我们在桌面随便新建一个测试Excel

在这里插入图片描述

2、我们利用pandas读取表格,将每一行读取成列表

这个非常简单!

在这里插入图片描述

代码:

安装库:pip install pandas

import pandas as pd

df = pd.read_excel("./test.xlsx",dtype=str,keep_default_na='')
for d in df.values.tolist():
    print(d)

3、我们要在PostgreSQL数据库中创建一张表,用来存放刚刚Excel中的数据

一般我们创建表都会用数据库语言,但是太麻烦了!!我们利用一个最方便的方法!!

这也是为什么选择Navicat的原因!!

①首先我们把刚刚的创建的Excel,表头单独复制出来,存在桌面!

在这里插入图片描述

②先右击,再点击导入

在这里插入图片描述
在这里插入图片描述

改个名字:

在这里插入图片描述

类型长度都可以改,这里直接下一步!

在这里插入图片描述

一路下一步,点击关闭

在这里插入图片描述

大功告成!

在这里插入图片描述

上述步骤等于下述代码:我只是太懒了,实在不想写,万一字段超级多咋办,所以还是刚刚的步骤最方便!!

CREATE TABLE students (
  name VARCHAR(50),
  student_id INT,
  gender VARCHAR(10),
  grade FLOAT
);

4、 写入PostgreSQL

注意事项: sql = 'insert into 插入测试表 values (%s,%s,%s,%s);'# 切记,有多少个(列)表头,就有多少个 %s 占位符

代码:

import pandas as pd
import psycopg2

conn = psycopg2.connect(
    host="localhost",
    database="sf",
    user="postgres",
    password="123456"
)
cur = conn.cursor()
print("连接成功!!")

df = pd.read_excel("./test.xlsx", dtype=str, keep_default_na='')
for d in df.values.tolist():
    print(d)
    sql = "INSERT INTO student VALUES (%s, %s, %s,%s)"
    cur.execute(sql, tuple(d))

conn.commit()
print("插入成功!")
conn.close()
print("连接关闭!!")

视频展示:

在这里插入图片描述

希望对大家有帮助

致力于办公自动化的小小程序员一枚

致力于写出清楚的博客

都看到这了,关注+点赞+收藏=不迷路!!

如果你想知道更多关于Python办公自动化的知识点请务必关注我一下.

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 以下是一个 Python 编写 API 读取数据并写入数据库的程序框架: 1. 导入必要的库,例如 requests、pandas 和 sqlalchemy 等。 2. 使用 requests 库读取 API 返回的数据,并将其存储在 pandas DataFrame 中。 3. 使用 sqlalchemy 库连接到数据库。 4. 将 pandas DataFrame 中的数据写入数据库。 5. 关闭数据库连接。 以下是示例代码: ``` import requests import pandas as pd from sqlalchemy import create_engine # 读取 API 数据 response = requests.get('https://api.example.com/data') data = response.json() df = pd.DataFrame(data) # 连接到数据库 engine = create_engine('postgresql://user:password@localhost/database') # 写入数据库 df.to_sql('table_name', engine, if_exists='replace') # 关闭数据库连接 engine.dispose() ``` 注意:这仅是一个示例代码,您需要根据自己的需求进行修改。 ### 回答2: 以下是一个用Python编写的API读取数据并将数据写入数据库的程序框架: ```python import requests import json import sqlite3 # 从API获取数据的函数 def get_data_from_api(api_url): response = requests.get(api_url) if response.status_code == 200: data = json.loads(response.text) return data else: return None # 将数据写入数据库的函数 def write_data_to_database(data): conn = sqlite3.connect('database.db') cursor = conn.cursor() for item in data: # 假设data中的每个item是一个字典,可以根据实际情况调整下面的代码 field1 = item['field1'] field2 = item['field2'] # ... # 执行数据库插入操作 cursor.execute("INSERT INTO table_name (field1, field2) VALUES (?, ?)", (field1, field2)) conn.commit() conn.close() # 主程序入口 if __name__ == '__main__': api_url = 'http://example.com/api' data = get_data_from_api(api_url) if data is not None: write_data_to_database(data) print('数据写入数据库成功!') else: print('无法获取数据,请检查API是否可用。') ``` 以上程序框架首先通过`get_data_from_api`函数从指定的API获取数据,然后通过`write_data_to_database`函数将数据写入SQLite数据库。请根据实际情况调整代码中的API URL、数据库连接信息和数据处理逻辑。 ### 回答3: 以下是一个Python编写的API读取数据后写入数据库的示例程序框架: ```python import requests import json import sqlite3 def fetch_data_from_api(): # 从API获取数据的代码,此处以requests库为例 url = "https://api.example.com/data" response = requests.get(url) data = json.loads(response.text) return data def write_to_database(data): # 连接数据库的代码,此处以SQLite为例 conn = sqlite3.connect("database.db") cursor = conn.cursor() # 创建数据 cursor.execute("CREATE TABLE IF NOT EXISTS data_table (id INTEGER PRIMARY KEY AUTOINCREMENT, value TEXT)") # 写入数据 for item in data: value = item.get("value") # 假设从API返回的数据中提取出要写入的值 cursor.execute("INSERT INTO data_table (value) VALUES (?)", (value,)) conn.commit() conn.close() def main(): data = fetch_data_from_api() write_to_database(data) if __name__ == "__main__": main() ``` 以上是一个简单的程序框架,实现了从API获取数据并将其写入数据库的功能。具体实现中,需要根据所使用的API和数据库类型进行相应的调整和修改。例如,可能需要使用其他库进行API请求、连接其他类型的数据库等。同时,还需要根据API返回数据的格式和数据库的结构进行相应的数据处理和插入操作。以上示例只是提供一个基本框架,具体实现需要根据实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一晌小贪欢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值