AI应用开发-python对MySQL数据的常见使用

AI应用开发相关目录

本专栏包括AI应用开发相关内容分享,包括不限于AI算法部署实施细节、AI应用后端分析服务相关概念及开发技巧、AI应用后端应用服务相关概念及开发技巧、AI应用前端实现路径及开发技巧
适用于具备一定算法及Python使用基础的人群

  1. AI应用开发流程概述
  2. Visual Studio Code及Remote Development插件远程开发
  3. git开源项目的一些问题及镜像解决办法
  4. python实现UDP报文通信
  5. python实现日志生成及定期清理
  6. Linux终端命令Screen常见用法
  7. python实现redis数据存储
  8. python字符串转字典
  9. python实现文本向量化及文本相似度计算
  10. python对MySQL数据的常见使用

文章目录


一、MySQL数据库的安装与使用

安装

详见:

https://blog.csdn.net/weixin_39289696/article/details/128850498

概括为:

离线安装包下载(msi文件,几百MB),Service only,检测mv C++

2019插件是否安装并完成安装,一路next,配置port,密码验证方式(Authentication

Method)这一步很重要(第一个是强密码校验,mysql推荐使用最新的数据库和相关客户端,MySQL8换了加密插件,所以如果选第一种方式,很可能导致你的navicat等客户端连不上mysql8),设置密码,需要牢记,因为后面要用这个密码连接数据库,用户名为root,最终更改mysql名称(mysql、mysql80等),服务器文件权限(Server

File Permissions)

使用

使用Navicat可轻松实现对数据的链接、库操作(增删改)、表操作(增删改查)。

但AI应用开发往往需要基于以下三点需求需要对MySQL进行代码操作:

1.表层面的数据自动化处理

2.表层面的数据批量处理

3.python实现的算法与其他技术栈(C++QT、Java Web等)实现的系统数据交互

二、代码示例

存储数据

cpp 复制代码
def insert_mysql(word):
    mysql_path = os.path.join(os.getcwd(), "data", "mysql_df1500hdb_config.json")
    with open(mysql_path, 'r', encoding='utf-8') as f:
        mid_json = json.load(f)
    db = pymysql.connect(host=mid_json['host'],
                         port=mid_json['port'],
                         user=mid_json['user'],
                         password=mid_json['password'],
                         database=mid_json['database'])
    cursor = db.cursor()
    insert_code = "INSERT INTO df_his_weatherpv (name,value1,value2,value3,value4,value5,value6,evt_time) VALUES (%s,%s,%s,%s,%s,%s,%s,%s);"
    cursor.execute(insert_code, (
    word.get('name'), word.get('value1'), word.get('value2'), word.get('value3'), word.get('value4'),
    word.get('value5'), word.get('value6'), str(timestamp2time(word.get('time')))))
    # 保留操作
    db.commit()
    # 关闭连接
    db.close()

拿取数据

cpp 复制代码
# 为温度、湿度、气压三个无需vdm分解的数据
def get_feature(now_time_str, des_code):
    table_ls = get_dbtable(now_time_str)
    if len(table_ls) == 1:
        mysql_path = os.path.join(os.getcwd(), "data", "mysql_df1500hdb_config.json")
        with open(mysql_path, 'r', encoding='utf-8') as f:
            mid_json = json.load(f)
        db = pymysql.connect(host=mid_json['host'],
                             port=mid_json['port'],
                             user=mid_json['user'],
                             password=mid_json['password'],
                             database=mid_json['database'])
        cursor = db.cursor()

        sql_code = "SELECT *  FROM {table} WHERE name = '{des}' AND evt_time >= DATE_SUB('{time}', INTERVAL 2 DAY) AND evt_time < '{time}';".format(
            time=now_time_str,
            table=table_ls[0],
            des=des_code)
        cursor.execute(sql_code)
        data = pd.DataFrame(cursor.fetchall())
        # 关闭连接
        db.close()
        # print(data)
        data.columns = ['id', 'name', 'value', 'ect_time', 'status']
        data = data.sort_values('ect_time')
        times = data['ect_time'].tolist()
        values = data['value'].tolist()
        mdh_indexs_dict = generate_26_mdhs(extract_mdh(now_time_str))
        mdhs = [extract_mdh(i) for i in times]
        for i in range(len(mdhs)):
            try:
                mdh_indexs_dict[mdhs[i]].append(i)
            except:
                pass
        flag = 0
        out_ls = []
        for mdh_dict_v in mdh_indexs_dict.values():
            if mdh_dict_v != []:
                flag += 1
                out_ls.append(np.mean(values[min(mdh_dict_v):max(mdh_dict_v) + 1]))
            else:
                out_ls.append(None)
        if flag == 24:
            return out_ls
        elif flag == 23 or flag == 22:
            return deal_none(out_ls)
        else:
            return []
    else:
        mysql_path = os.path.join(os.getcwd(), "data", "mysql_df1500hdb_config.json")
        with open(mysql_path, 'r', encoding='utf-8') as f:
            mid_json = json.load(f)
        db = pymysql.connect(host=mid_json['host'],
                             port=mid_json['port'],
                             user=mid_json['user'],
                             password=mid_json['password'],
                             database=mid_json['database'])
        cursor = db.cursor()

        sql_code = "SELECT *  FROM {table} WHERE name = '{des}' AND  evt_time >= DATE_SUB('{time}', INTERVAL 2 DAY) AND evt_time < '{time}';".format(
            time=now_time_str,
            table=table_ls[0],
            des=des_code)
        cursor.execute(sql_code)
        data1 = pd.DataFrame(cursor.fetchall())
        sql_code = "SELECT *  FROM {table} WHERE name = '{des}' AND  evt_time >= DATE_SUB('{time}', INTERVAL 2 DAY) AND evt_time < '{time}';".format(
            time=now_time_str,
            table=table_ls[1],
            des=des_code)
        cursor.execute(sql_code)
        data2 = pd.DataFrame(cursor.fetchall())
        db.close()
        data = pd.concat([data1, data2], ignore_index=True)
        data.columns = ['id', 'name', 'value', 'ect_time', 'status']
        data = data.sort_values('ect_time')
        times = data['ect_time'].tolist()
        values = data['value'].tolist()
        mdh_indexs_dict = generate_26_mdhs(extract_mdh(now_time_str))
        mdhs = [extract_mdh(i) for i in times]
        for i in range(len(mdhs)):
            try:
                mdh_indexs_dict[mdhs[i]].append(i)
            except:
                pass
        flag = 0
        out_ls = []
        for mdh_dict_v in mdh_indexs_dict.values():
            if mdh_dict_v != []:
                flag += 1
                out_ls.append(np.mean(values[min(mdh_dict_v):max(mdh_dict_v) + 1]))
            else:
                out_ls.append(None)
        if flag == 24:
            return out_ls
        elif flag == 23 or flag == 22:
            return deal_none(out_ls)
        else:
            return []

删除、修改等操作与上述类似,即用即查即可


三、总结

完结,撒花!

相关推荐
霸道流氓气质1 分钟前
智能客服组件:分层意图识别、RAG Advisor 与人工转接状态机的 Vue3 + Spring AI 生产级实战
java·人工智能·spring
深蓝AI6 分钟前
苹果智能入华拆解:八样首批功能、支持的机型、千问在三个入口的位置
人工智能·架构
前端 贾公子12 分钟前
第 1 章:Vibe Coding 与 Agent 的工作方式
人工智能
JAVA_AI人工智能项目实战26 分钟前
轻量级模型训练_RNN文本分类流水线实验代码
人工智能·rnn·分类
code2cat31 分钟前
【随笔】RAG混合检索:让关键词与向量一起找证据
人工智能·rag·混合检索
wflynn1 小时前
GitHub 今日推荐|Edge0:让大号 MoE 模型在一台 Mac 上流式跑起来
python·开源·github
在所不辞兄1 小时前
【零基础学智能仿真-67】力学知识库与检索增强
人工智能·深度学习·神经网络·机器学习·智能仿真
云上先途1 小时前
下一代搜索优化重点优化哪些维度,和旧SEO思路有什么不同?
人工智能
楚山之石1 小时前
【Lancet Neurology 】多发性硬化认知障碍的 SDMT 筛查、灰质萎缩标志与认知康复循证路径
图像处理·人工智能·学习·mri
2601_967980111 小时前
python之用scapy分层解析pcap报文(Ethernet帧、IP数据包、TCP数据包、UDP数据包、Raw数据包)
python·scapy·pcap·协议分析·网络数据包