wangxishi

2020-09-08   阅读量: 9494

Python 数据分析师

在python中怎么使用my sql

扫码加入数据分析学习群

如题,想在python中导入文件后使用my sql查询文件,请问应该怎么做呢

30.9968 2 12 关注作者 收藏

评论(12)

s1223452840
2020-09-22

image.png 类似我发的图片 , 用execute()方法操作即可

0.0000 0 0 回复
wangxishi
2020-09-22

如果我本地上传了一个文件到python,读取文件后怎么在python 里面用sql代码处理这个文件呢

0.0000 0 0 回复
s1223452840
2020-09-09

最后面少打一个括号

0.0000 0 0 回复
wangxishi
2020-09-09

这个报错是什么原因呢

1.png

0.0000 0 0 回复
s1223452840
2020-09-09

示例:

# 导包

import pymysql

# 创建连接对象

mydb = pymysql.connect(

host='localhost', # 数据库主机地址

user="root", # 数据库用户名

password="1234" , # 数据库密码

database=None, # 可以指定连接某个数据库

port=3306, # 端口号, 默认是3306

charset='utf8' # 使用的编码

)


0.0000 0 0 回复
wangxishi
2020-09-09

使用pymysql的话如何从python连接上sql数据库呢

0.0000 0 0 回复
s1223452840
2020-09-09

你下载了pymysql,却没有用,你用的是MySQLdb,它只支持 Python2.x,你的这段代码并没有使用pymysql

0.0000 0 0 回复
wangxishi
2020-09-09

我下载了pymysql的包,但是为什么这段代码运行不了呢

import MySQLdbconn=MySQLdb.connect(host="localhost",user="root",passwd="root",db="mydatabase",charset="utf8")cursor = conn.cursor()if conn:print("data base has already connected")

1.png

32.4776 1 0 回复
s1223452840
2020-09-09

可以的,你下载一个pymysql的包,是专门通过python操作mysql数据库的,通过pymysql,你可以创建,连接,操作数据库文件,方法方式非常多,这里没有办法一一赘述。

32.4776 1 0 回复
ermutuxia
2020-09-08

测试

0.0000 0 0 回复
wangxishi
2020-09-08

可不可以连接上我本地的sql数据库,然后倒入文件到python可以跑sql代码,或者有其他方法可以倒入文件到python后跑sql代码吗

0.0000 0 0 回复
s1223452840
2020-09-08

这是一个小流程: 这里给你举个例子参考一下:

原始数据在txt中 处理有很多不便 想要把它们插入到sql中去

代码如下:

连接数据库:

import MySQLdbconn=MySQLdb.connect(host="localhost",user="root",passwd="root",db="mydatabase",charset="utf8")cursor = conn.cursor()if conn:print("data base has already connected")

打开文件获取一行数据

f = open("data_first.csv","r")f.readline()#因为txt中第一行一般为列名,因此用readline先将这行数据跳过

拼接insert语句

我要插入的数据表为MyData,数据列为21列,第一列为id列。数据表已经在sql中存在,且txt中用逗号隔开的数据列也为21列

insertcolumn = "id "s = "'%s'"for i in range(1,20,1):s = s + ",'%s'"insertcolumn = "Insert into MyData "+"values("+s+")"


循环插入

这一部分需要注意的是,用readline读取的时候,会把每行末尾的\n也读取进去,可以用strip对其进行处理

while True:line = f.readline().strip('\n')#按行读取且处理掉换行符,效果:"\'\n'变为了''if line:#print(line.split(','))list = line.split(',')#数据以逗号分隔,因此用split(',')#print(len(list))#获取长度insertcolumn_full = insertcolumn%tuple(list)#%s的字符串格式化传参只支持元组和字典,不支持列表,因此这里需要用tuple(list)将list转为元组#print(insertcolumn_full)cursor.execute(insertcolumn_full)#运行conn.commit()#事务提交,这句一定要有!否则即使python不报错 数据也无法成功插入sqlelse:break

关闭

cursor.close()
conn.close()
f.close()


30.9477 1 0 回复

推荐课程