您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > Python

Python接入不同类型数据库的通用接口方法

时间:2022-06-28 12:49:06  来源:  作者:Leo李遥

日常数据管理工作中,需要处理存储在不同类型数据库系统的数据。对这些数据的管理,常见的是使用Navicat,DBeaver等管理工具。在对大量数据分析时,需要提取到Python/ target=_blank class=infotextkey>Python/R中进行处理。下面探索Python调用MySQL,MongoDB,InfluxDB等多种类型数据库通用连接方法。实现方式是在Python中封装各类数据库接口包。

实现后的效果:1.安全。接口信息封装便于保密管理;2.复用。一次封装,永久复用;3.上手快。方便不熟悉python和数据调用的同学,只会简单的sql即可使用,省时省力。

下面以MySQL,MongoDB,InfluxDB为例定义接口方法,然后把它们封装成1个通用方法。

mysql_get(sql,db):

# 导入包
import pandas as pd
from sqlalchemy import create_engine 
# 定义取数函数
def mysql_get(sql,db):
    conn = create_engine('mysql+pymysql://root:123456@localhost:3306/'+db)
    df_read = pd.read_sql_query(sql, conn)
    conn.dispose()
    return df_read

mongo_get(sql,db):

# 导入包
import pymongo
from bson.objectid import ObjectId
# 处理sql语句in的内容,准备工作
list_x = ['c', 'd', 'e', 'f']  # 非_id字段
list_id = ['df343dr34rwfd3', 'ji80jju8jeoe9']  # _id字段
obj_x = ObjectId(list_id)  # _id字段
# 定义取数函数
# eg, sql1:"select a,b from tb where a >= 1 order by b limit 5 " 
# eg, sql2:"select a,b from tb where a in {list_x} limit 5"
# eg, sql3:"select a,b from tb where _id in {obj_x} limit 5"
def mongo_get(sql, db):  
    # 第一步,解析sql,得到projectionFields,order by顺序,head(n)等,过程略
    # 第二步,执行查询,获得结果
    mycl.NET = pymongo.MongoClient("mongodb://127.0.0.1:27017")
    collection = myclinet[db]
    serchRes = collection.find(queryArgs, projection=projectionFields)
    # 第三步,返回dict
    return serchRes

influx_get(sql,db):

import pandas as pd
from influxdb import InfluxDBClient
def influx_get(sql,db):
    client = InfluxDBClient('127.0.0.1','8086','root','root',db)
    # eg,sql:"select * from SYS_DISK where time >= '2022-06-01 00:00:00' and time <= '2022-06-30 23:55:00';"
    tab_res = client.query(sql)
    query_res = list(tab_res)
    df = pd.DataFrame(query_res[0])
    return df

可以看到,以上函数共同调用的参数为sql和db。我们再增加一个参数db_type,将构造一个通用的方法对以上数据库调用。

def get_data(db_type,sql,db):
    if db_type == 'mysql':
        return mysql_get(sql,db)
    elif db_type == 'mongo':
        return mongo_get(sql,db)
    else:
        return influx_get(sql,db)

同理,其他类型的数据库也可以加入到这个通用框架中,包括但不限于各类关系型,键值型,时序型数据库。



Tags:接口方法   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
Python接入不同类型数据库的通用接口方法
日常数据管理工作中,需要处理存储在不同类型数据库系统的数据。对这些数据的管理,常见的是使用Navicat,DBeaver等管理工具。在对大量数据分析时,需要提取到Python/R中进行处理...【详细内容】
2022-06-28  Search: 接口方法  点击:(402)  评论:(0)  加入收藏
▌简易百科推荐
一篇文章教会你使用Python中三种简单的函数
所谓函数,就是指:把某些特定功能的代码组成为一个整体,这个整体就叫做函数。一、函数简介所谓函数,就是指:把某些特定功能的代码组成为一个整体,这个整体就叫做函数。二、函数定义...【详细内容】
2024-04-11  Go语言进阶学习  微信公众号  Tags:Python   点击:(12)  评论:(0)  加入收藏
一篇文章带你了解Python的分布式进程接口
在Thread和Process中,应当优选Process,因为Process更稳定,而且,Process可以分布到多台机器上,而Thread最多只能分布到同一台机器的多个CPU上。一、前言在Thread和Process中,应当优...【详细内容】
2024-04-11  Go语言进阶学习    Tags:Python   点击:(9)  评论:(0)  加入收藏
Python 可视化:Plotly 库使用基础
当使用 Plotly 进行数据可视化时,我们可以通过以下示例展示多种绘图方法,每个示例都会有详细的注释和说明。1.创建折线图import plotly.graph_objects as go# 示例1: 创建简单...【详细内容】
2024-04-01  Python技术    Tags:Python   点击:(15)  评论:(0)  加入收藏
Python 办公神器:教你使用 Python 批量制作 PPT
介绍本文将介绍如何使用openpyxl和pptx库来批量制作PPT奖状。本文假设你已经安装了python和这两个库。本文的场景是:一名基层人员,要给一次比赛活动获奖的500名选手制作奖状,并...【详细内容】
2024-03-26  Python技术  微信公众号  Tags:Python   点击:(21)  评论:(0)  加入收藏
Python实现工厂模式、抽象工厂,单例模式
工厂模式是一种常见的设计模式,它可以帮助我们创建对象的过程更加灵活和可扩展。在Python中,我们可以使用函数和类来实现工厂模式。一、Python中实现工厂模式工厂模式是一种常...【详细内容】
2024-03-07  Python都知道  微信公众号  Tags:Python   点击:(36)  评论:(0)  加入收藏
不可不学的Python技巧:字典推导式使用全攻略
Python的字典推导式是一种优雅而强大的工具,用于创建字典(dict)。这种方法不仅代码更加简洁,而且执行效率高。无论你是Python新手还是有经验的开发者,掌握字典推导式都将是你技能...【详细内容】
2024-02-22  子午Python  微信公众号  Tags:Python技巧   点击:(41)  评论:(0)  加入收藏
如何进行Python代码的代码重构和优化?
Python是一种高级编程语言,它具有简洁、易于理解和易于维护的特点。然而,代码重构和优化对于保持代码质量和性能至关重要。什么是代码重构?代码重构是指在不改变代码外部行为的...【详细内容】
2024-02-22  编程技术汇    Tags:Python代码   点击:(42)  评论:(0)  加入收藏
Python开发者必备的八个PyCharm插件
在编写代码的过程中,括号几乎无处不在,以至于有时我们会拼命辨别哪个闭合括号与哪个开头的括号相匹配。这款插件能帮助解决这个众所周知的问题。前言在PyCharm中浏览插件列表...【详细内容】
2024-01-26  Python学研大本营  微信公众号  Tags:PyCharm插件   点击:(92)  评论:(0)  加入收藏
Python的Graphlib库,再也不用手敲图结构了
Python中的graphlib库是一个功能强大且易于使用的工具。graphlib提供了许多功能,可以帮助您创建、操作和分析图形对象。本文将介绍graphlib库的主要用法,并提供一些示例代码和...【详细内容】
2024-01-26  科学随想录  微信公众号  Tags:Graphlib库   点击:(93)  评论:(0)  加入收藏
Python分布式爬虫打造搜索引擎
简单分布式爬虫结构主从模式是指由一台主机作为控制节点负责所有运行网络爬虫的主机进行管理,爬虫只需要从控制节点那里接收任务,并把新生成任务提交给控制节点就可以了,在这个...【详细内容】
2024-01-25  大雷家吃饭    Tags:Python   点击:(62)  评论:(0)  加入收藏
相关文章
    无相关信息
站内最新
站内热门
站内头条