tushare库的保存数据
python的tushare库获取的数据都是dataframe类型,所以可以使用to_sql()方法或to_excel()方法将其快速保存
to_excel
df.to_excel('D:name.xlsx',index = False)
to_sql
1、安装依赖包
sqlalchemy、mysqlclient
2、安装MySQL
对于MySQL版本,没有特别的要求,mysql 5+、mysql 8+ 都可以,如果是最新版mysql,需要将sqlalchemy升级到最新版。具体的安装过程,这里不做介绍,大家可自行baidu,有很多参考材料。
3、编写入库代码
由于用了sqlalchemy,这个过程非常简单。用户无需首先在数据库中建表就可以执行数据入库,但这种默认方式所创建的数据表并不是最有的数据结构,可以参考第4条进行优化。
res=df.to_sql('stock_basic',engine_ts,index=False,if_exists='append',chunksize=5000)
4、数据结构优化
对于默认创建的表,会有一些不太符合实际应用,比如数据结构类型比较单一,没有主键和索引等约束,没有comments等等。我们可以在数据库客户端对所建立的表进行修改,使其符合实际的最优设计。比如将一般的str类型转成varchar2数据类型,而不是text数据类型。
python修改MySQL数据库注意事项
以下是一次python对数据库的删除操作。这段代码能正常运行且不会报错,但MySQL数据库内的对应数据没有被删除。
import pymysql
db=pymysql.connect(host='localhost',port=3306,user='root',password='root',database='dbname',charset='utf8')
cursor = db.cursor()
sql = "delete from table where name='Li'"
cursor.execute(sql)
cursor.close()
db.close()
python对MySQL数据库进行增、删、改操作时,需要提交并刷新数据库后,才能完成对应操作。故需要在sql语句被执行后使用commit()方法提交并刷新数据库。
以下是修改完善后的代码:
import pymysql
db=pymysql.connect(host='localhost',port=3306,user='root',password='root',database='dbname',charset='utf8')
cursor = db.cursor()
sql = "delete from table where name='Li'"
cursor.execute(sql)
db.commit() #添加的代码
cursor.close()
db.close()