python获取股票10年的日线数据并且存入数据库
时间: 2023-08-12 13:12:46 浏览: 159
要获取股票10年的日线数据并存入数据库,你需要进行以下步骤:
1. 确定需要获取的股票代码,例如获取中国平安(601318)的数据。
2. 导入必要的库,包括pandas、tushare和pymysql。
```python
import pandas as pd
import tushare as ts
import pymysql
```
3. 使用tushare库获取股票数据。这里我们使用tushare的pro接口获取数据,需要先在tushare官网注册并获取API令牌。以下代码获取中国平安2010年至今的日线数据。
```python
ts.set_token('YOUR_TOKEN_HERE')
pro = ts.pro_api()
df = pro.daily(ts_code='601318.SH', start_date='20100101')
```
4. 将数据存入数据库。这里我们使用pymysql库连接MySQL数据库,并将数据存入名为“stock_daily”的表中。
```python
conn = pymysql.connect(host='localhost', user='root', password='YOUR_PASSWORD_HERE', db='YOUR_DATABASE_NAME_HERE', charset='utf8')
cursor = conn.cursor()
# 创建表格
cursor.execute('''
CREATE TABLE IF NOT EXISTS stock_daily (
ts_code VARCHAR(20) NOT NULL,
trade_date DATE NOT NULL,
open FLOAT(10,2) NOT NULL,
high FLOAT(10,2) NOT NULL,
low FLOAT(10,2) NOT NULL,
close FLOAT(10,2) NOT NULL,
pre_close FLOAT(10,2) NOT NULL,
change FLOAT(10,2) NOT NULL,
pct_chg FLOAT(10,2) NOT NULL,
vol FLOAT(20,2) NOT NULL,
amount FLOAT(20,2) NOT NULL,
PRIMARY KEY (ts_code, trade_date)
)
''')
# 存入数据
for index, row in df.iterrows():
sql = '''
INSERT INTO stock_daily (ts_code, trade_date, open, high, low, close, pre_close, change, pct_chg, vol, amount)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
'''
cursor.execute(sql, (row['ts_code'], row['trade_date'], row['open'], row['high'], row['low'], row['close'], row['pre_close'], row['change'], row['pct_chg'], row['vol'], row['amount']))
conn.commit()
cursor.close()
conn.close()
```
完成以上步骤后,你就可以在数据库中找到股票数据了。
阅读全文