在macOS上使用Python+MySQL连接Tushare,进行股票数据下载

来源:互联网 发布:java中的多态是什么 编辑:程序博客网 时间:2024/05/29 13:26

我在自己的mac上安装了MySQL,使用PyCharm Edu版编写程序,通过Tushare下载沪深股票数据并存储到本地mysql库。

在调试过程中,因为之前安装过不同的IDE环境造成了Python版本的混乱,安装Anaconda后会自动配制Python环境到Anaconda目录下。之前通过pip正安的一些工具包就无法识别了。因项目开始时使用的是PyCharm,所以暂时先把Anaconda卸载了,不过在网上看到不少人对Anaconda的评价还是不错的,说是与PyCharm是最好用的两款IDE环境。而且在安装后由于环境混乱,在网上查找相关资料才发现使用Conda配置不同的环境应该是非常不错的,之后再好好了解一下。

由于是Python的初学者,所以是在边做边学。通过股票数据导入到数据库这个小项目,来熟悉一下Python的语法及环境。

目前在数据导入上还是出现问题。从数据库中股票列表中选出要下载数据的股票列表,之后使用循环通过Tushare下载数据并存入库中,目前从循环及判断库是否已经存在同名表已经顺利通过。但在向库中写入数据的时候还是经常报错,经常是前2条已经下载并完成写入,之后就报错退出了。

报错信息:AttributeError: 'NoneType' object has no attribute 'to_sql'  目前正在查资料。

代码:

dailyData = ts.get_hist_data(stock)try:    print 'First try'    dailyData.to_sql(filename,engine,if_exists='append')except:    print 'Second times try'    dailyData.to_sql(filename,engine,if_exists='append')

控制台信息:


Row Count is :118
============= Row index is :1
download stock code is:000100
database tablename is:000100-DailyData
First try
Second times try
============= Row index is :2
download stock code is:000425
database tablename is:000425-DailyData
First try
Second times try
============= Row index is :3
download stock code is:000522
database tablename is:000522-DailyData
First try
Second times try
Traceback (most recent call last):
  File "/Users/patrick/PycharmProjects/Stock/StockDailyDataMaintenance/main.py", line 29, in <module>
    dsdd(stock)
  File "/Users/patrick/PycharmProjects/Stock/StockDailyDataMaintenance/DownloadStockDailyData.py", line 52, in dsdd
    dailyData.to_sql(filename,engine,if_exists='append')

AttributeError: 'NoneType' object has no attribute 'to_sql'

Process finished with exit code 1

突然想到个问题,前再次的数据下载是成功的,我的代码应该是没有问题的,第三次的时候就莫名其妙的出错了,会不会是数据接口有限制呢?

晚上再次试验了保存到CSV文件,还是同样的问题

def dsdd(stock):    print 'download stock code is:%s'%stock    filename = stock + '-DailyData'    dailyData = ts.get_hist_data(stock)    datapath = csvFilePath + filename + '.csv'    print datapath    dailyData.to_csv(datapath)
控制台:
AttributeError: 'NoneType' object has no attribute 'to_csv'

问题解决,是因为下载列表中第四只股票代码在数据库中不存在。

阅读全文
0 0