python读取csv文件内容,并保存到数据库中

2023-11-11

# -*- coding: utf-8 -*-
#python读取csv文件内容,并保存到数据库中
import csv
import time
import pymysql
import emoji

num = 0
file_path = r'H:\20221103174026.csv'   # r对路径进行转义,windows需要
##errors='ignore' 出现错误时忽略
with open(file_path, 'r' , errors='ignore') as csvfile:
    reader = csv.reader(_.replace('\x00', '') for _ in csvfile)
    #reader = csv.reader(csvfile)
    for row in reader:
        # the first row is table header
        num = num+1
        if num >= 18429:
            pro_name = row[1]
            google_img = emoji.demojize(row[2].replace("'", ""))
            pro_type = emoji.demojize(row[3].replace("'", ""))
            pro_list = pro_name.split('^')
            print(pro_list)
            if len(pro_list) > 1:
                pro_id = pro_list[len(pro_list)-1]
            else:
                pro_id = ''
            pro_title = emoji.demojize(pro_list[0].replace("'", ""))
            if str(pro_id) != '':
                db = pymysql.connect(host="localhost",
                                     db="test",
                                     user="root",
                                     password="root123",
                                     port=3306,
                                     charset="utf8")
                cursor = db.cursor()
                sql = "select count(1) as count from google_img where pro_id='" + pro_id + "' and pro_title = '" + pro_title + "'" + " and type = '" + pro_type + "'"
                print(sql)
                cursor.execute(sql)
                res = cursor.fetchone()
                if res[0] == 0:
                    add_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
                    print(add_time)
                    sql = """insert into google_img(pro_id,pro_title,google_img,type,add_time) 
                                values ('%s','%s','%s','%s','%s')"""  % (str(pro_id), str(pro_title), str(google_img), str(pro_type), str(add_time))
                    print(sql)
                    cursor.execute(sql)
                    pl_id = db.insert_id()
                    print(str(num) + '==' + str(pro_id) + '==' + str(pro_title) + '==' + str(pro_type) + '==' + '===保存成功')
                else:
                    print(str(num) + '==' + str(pro_id) + '==' + str(pro_title) + '==' + str(pro_type) + '===已存在')
                cursor.close()
                db.commit()
                db.close()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python读取csv文件内容,并保存到数据库中 的相关文章

随机推荐

  • 常用linux命令

    1 创建文件目录 mkdir 2 创建文件 vi filename eg vi test txt 3 移动文件 mv source destination eg mv test txt study 重命名文件 mv test txt hel
  • VScode 黄色波浪线,Import “[module]“ could not be resolvedPylance

    文章目录 问题描述 解决方案 1 修改vscode的python环境 2 修改 vscode seteing json 文件 问题描述 大致的错误截图 第三方包 自己的代码库 导入不成功 显示黄色波浪线 代码自动提示功能受限 解决方案 可按
  • 斯坦福 机器学习-第二章 生成学习算法

    CS229 Lecture notes 原作者 Andrew Ng 吴恩达 翻译 CycleUser Part IV 生成学习算法 Generative Learning algorithms 目前为止 我们讲过的学习算法的模型都是p y
  • java--基础--17.1--线程--实现多线程,线程方法

    java 基础 17 1 线程 实现多线程 线程方法 1 概念 进程 正在运行的程序 每个进程可以由多个线程组成 线程 是进程中的单个顺序控制流 是一条执行路径 并行 指在某一个时间点执行多个任务 并发 指在某一个时间段执行多个任务 2 实
  • 【Android】App开发-动画效果篇

    在我们玩手机的过程中 如果我们点击某一个页面时 会出现一个页面动画加载或者动画效果的现象 现在我们就来看看App开发中是如何实现动画效果的 目录 动画的分类 逐帧动画 补间动画 动画的分类 在常见的app使用的动画中 常见的就是逐帧动画 补
  • confluence安装

    注 安装前确保机器已安装docker 1 执行如下命令一键安装wiki mkdir p data cd data wget http apk lingyun5 com confluence wiki tar gz tar zxvf conf
  • 学习sql,你需要知道这些

    这里写目录标题 数据库的分类 开发式数据库 非开发式数据库 事务 什么是事务 事务的四种特性 死锁 什么是死锁 死锁的四个条件 如何处理死锁 预防死锁 避免死锁 检测死锁 解除死锁 什么是navicat SQL语句 对数据库的操作 对表的操
  • 数字图像处理:使用直方图统计进行图像增强

    一 引言 在 数字图像处理 局部直方图处理 Local Histogram Processing https blog csdn net LaoYuanPython article details 120383974 介绍了基于像素的邻域进
  • 工具类之FastDFSClient

    import org csource common MyException import org csource common NameValuePair import org csource fastdfs import org spri
  • 【GRU时序预测】基于贝叶斯网络优化卷积神经网络结合门控循环单元BO-CNN-GRU实现数据股价预测附matlab代码

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 matlab项目合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 更多Matlab仿真内容点击 智能优化算法 神经网络预测 雷达通信 无线传感器 电力系统 信号
  • c语言 --- 指针

    什么是指针 指针就是一个地址 在c语言中任何东西都是有地址的 如何获取地址 用的是 取地址符 指针就是一个整数 获取指针 定义变量时 可以通过取地址符 得到当前变量的地址 gt 一个房间对应一个房间号 地址类比于房间号 所有的指针类型都是
  • jpa 动态参数查询 高级查询

    GetMapping find ApiOperation 通用查询 ScSecurityPermission name 通用查询 public ScResult find FileInfo fileInfo RequestParam nam
  • JS获取json子项/数组的个数/长度

    JS获取json子项 数组的个数 长度 微信小程序获取json格式数据的个数 长度
  • java 请求参数加解密

    项目开发中 需要针对请求参数加密 解密操作 可以使用下列工具类 oap security enabled true oap security enableIgnoreAnnotation true oap security secretKe
  • [4G/5G/6G专题基础-158]: 5G VoNR(Voice over NR)与VoLTE共同组成5G三大语音方案

    目录 第1章 语音方案概述 1 1 VoLTE概述 1 2 5G VoNR概述 第2章 5G VoNR网络架构 2 1 基本原则 2 2 NSA VoLTE方案 2 3 SA EPS Fallback SA组网 早期方案 2 4 SA Vo
  • 对于售点POI标签计算脚本优化总结

    对于售点POI标签计算脚本性能优化总结 减少udf 函数的使用多多使用spark的算子 对于两组经纬度的距离计算可以使用常规的公式计算法 Haversine 公式是一种用于计算两个球面坐标点 经度和纬度 之间的距离的公式 它的原理是基于球面
  • netpoll浅析

    netpoll只是一种框架和一些接口 只有依赖这个框架和接口实现的netpoll实例 netpoll才能发挥它的功能 类似于kernel中的vfs vfs本身并不会去做具体的文件操作 只是为不同的文件系统提供了一个框架 netpoll不依赖
  • 理解编程中的while循环(C/C++)

    固定的语法结构 省略 include 和 using int main printf x 我们写这个代码 打了一个int main 然后打了一个大括号 为什么要这样做 这个main 是一个函数 但为什么一定要叫main 为什么又需要打 又需
  • JS中的递归

    1 什么是递归 如果一个函数在内部可以调用其本身 那么这个函数就是递归函数 简单理解 函数内部自己调用自己 这个函数就是递归函数 比如 但上面代码报错因为递归很容易发生 栈溢出 错误 stack 所以必须要加退出条件 return 递归必须
  • python读取csv文件内容,并保存到数据库中

    coding utf 8 python读取csv文件内容 并保存到数据库中 import csv import time import pymysql import emoji num 0 file path r H 20221103174