我正在尝试从国家证券交易所检索给定Scrip名称的数据。
我已经创建了一个数据库名称" NSE"在MySQL中。但没有创建任何表格。
我正在使用以下脚本来检索NSE网站上的每分钟数据(假设我想要检索脚本(股票)数据' CYIENT'。
from alpha_vantage.timeseries import TimeSeries
import matplotlib.pyplot as plt
import sys
import pymysql
#database connection
conn = pymysql.connect(host="localhost", user="root", passwd="pwd123", database="NSE")
c = conn.cursor()
your_key = "WLLS3TVOG22C6P9J"
def stockchart(symbol):
ts = TimeSeries(key=your_key, output_format='pandas')
data, meta_data = ts.get_intraday(symbol=symbol,interval='1min', outputsize='full')
sql.write_frame(data, con=conn, name='NSE', if_exists='replace', flavor='mysql')
print(data.head())
data['close'].plot()
plt.title('Stock chart')
plt.show()
symbol=input("Enter symbol name:")
stockchart(symbol)
#commiting the connection then closing it.
conn.commit()
conn.close()
在运行上述脚本时,我遇到以下错误:
'sql' is not defined.
此外,我不确定上述脚本是否也会在NSE中为(用户输入)股票' CYIENT'创建一个表。
答案 0 :(得分:1)
在回答之前,我希望代码是模拟,而不是真正的代码。否则,我建议您更改凭据。
现在,我相信您正在尝试使用pandas.io.sql.write_frame
(pandas<=0.13.1
)。但是,您忘记导入模块,因此解释器无法识别模块sql
。要修复它,只需添加
from pandas.io import sql
到剧本的开头。
注意您在函数调用中使用的参数。您使用if_exists='replace'
,因此每次运行该函数时都会删除并重新创建表NSE
。它将包含data
包含的任何内容。