python +mysql 数据库操作

python7年前 (2019)发布 admin
443 0

#数据查询
import pymysql  
try:  
#获取一个数据库连接,注意如果是UTF-8类型的,需要制定数据库  
    conn=pymysql.connect(host='localhost',user='root',passwd='root',db='test',port=3306,charset='utf8')  
    cur=conn.cursor()#获取一个游标  
    cur.execute('select * from wx')  
    data=cur.fetchall()  
    for d in data :  
        #注意int类型需要使用str函数转义  
     print("ID: "+str(d[0])+'  单据号: '+d[1]+"  金额: "+d[2]+"  时间: "+d[3])  
  
    cur.close()#关闭游标  
    conn.close()#释放数据库资源  
except  Exception :print("发生异常")  

#单条数据插入
#coding=utf-8

import pymysql

#创建数据库连接,注意这里我加入了charset和cursorclass参数
conn = pymysql.connect(
    host = "127.0.0.1",
    user = "root",
    password = "root",
    database = "test",
    charset = 'utf8',
    cursorclass = pymysql.cursors.DictCursor)
#获取游标
cursor = conn.cursor()

try:
    # 执行一条insert语句,返回受影响的行数
    cursor.execute("INSERT INTO wx(wxddh, jine, uptime) VALUES(%s,%s,%s);",('1231231231231', '99', '20190530' ))
    # 执行多次insert并返回受影响的行数
    #cursor.executemany("INSERT INTO para5(name,age) VALUES(%s,%s);", [('次牛444', '12'), ("次牛2", '11'), ('次牛3', '10')])
    # 提交执行
    conn.commit()
except Exception as e:
    # 如果执行sql语句出现问题,则执行回滚操作
    conn.rollback()
    print(e)
finally:
    # 不论try中的代码是否抛出异常,这里都会执行
    # 关闭游标和数据库连接
    cursor.close()
    conn.close()
#sql = "INSERT INTO EMPLOYEE(wxddh, jine, uptime)  VALUES ('1231231231231', '99', '20190530' )"

#csvtomysql
#coding=utf-8
import pandas as pd
import os
import pymysql

os.getcwd()
# pandas读取文件 这里随便找了一个爬取的股票文件改的名字
# usecols 就是说我只用这些列其他列不需要
# parse_dates 由于csv只储存str、int、float格式无法储存日期格式,所以读取是设定吧日期列读作时间格式
print("当前的工作目录为:%s" %os.getcwd())
#pathstr=os.getcwd()
df = pd.read_csv('/Users/CocaShu/Desktop/pytest/1.csv', encoding='gbk', usecols=[5, 24,0] )

df['微信订单号'] = df['微信订单号'].str.replace(r'`', '') 
df['订单金额'] = df['订单金额'].str.replace(r'`', '')
df['交易时间'] = df['交易时间'].str.replace(r'`', '')
df=df.drop([len(df)-1])
df=df.drop([len(df)-1])
print(df)

#print('数据总记录数:'+str(len(df)))



#创建数据库连接,注意这里我加入了charset和cursorclass参数
conn = pymysql.connect(
    host = "127.0.0.1",
    user = "root",
    password = "root",
    database = "test",
    charset = 'utf8',
    cursorclass = pymysql.cursors.DictCursor)
#获取游标
cursor = conn.cursor()

try:
    # 执行一条insert语句,返回受影响的行数
    # cursor.execute("INSERT INTO para5(name,age) VALUES(%s,%s);",('次牛','12'))
    # 执行多次insert并返回受影响的行数
    cursor.executemany("INSERT INTO wx(wxddh,jine,uptime) VALUES(%s,%s,%s);", [('444', '12','12'), ("2", '11','12'), ('3', '10','12')])
 
    # 提交执行
    conn.commit()
    print('数据提交')
except Exception as e:
    # 如果执行sql语句出现问题,则执行回滚操作
    conn.rollback()
    print('数据回滚')
    print(e)
finally:
    # 不论try中的代码是否抛出异常,这里都会执行
    # 关闭游标和数据库连接
    cursor.close()
    conn.close()

© 版权声明

相关文章