2017-11-21 1 views
0

주어진 Scrip 이름에 대해 National Stock Exchange에서 데이터를 검색하려고합니다.로컬 호스트에서 pandas 시계열 데이터를 mysql 데이터베이스로 가져 오는 중 오류가 발생했습니다.

이미 MySQL에서 데이터베이스 이름 "NSE"를 만들었습니다. 그러나 테이블을 만들지 않았습니다.

나는 NSE 웹 사이트에서 분 당 데이터도 검색 할 사용하고 다음 스크립트는 (이 전 전대 (주) '인포 테크 엔터 프라 이지스'에 대한 데이터를 검색하려는 가정 해 봅시다.

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에서 테이블을 만들 것인지 확실하지 오전에 대답하기 전에

답변

1

, 나는 일 희망 전자 코드는 실제 코드가 아니라 모의 코드입니다. 그렇지 않으면 자격 증명을 변경하는 것이 좋습니다.

지금은 (pandas<=0.13.1)을 사용하려고합니다. 그러나 모듈을 가져 오는 것을 잊었으므로 인터프리터는 모듈 sql을 인식하지 못합니다. 그것을 고치기 위해서 단지 스크립트의 시작 부분에

from pandas.io import sql 

을 추가하십시오.

함수 호출에서 사용하는 매개 변수에 유의하십시오. if_exists='replace'을 사용하기 때문에 테이블을 NSE 삭제하고 함수를 실행할 때마다 다시 만듭니다. data에 포함 된 내용이 포함됩니다.

+0

제안에 감사드립니다. @tmrlvi 자격 증명에 문제가 없으므로 다시 제작할 수 있습니다. 하지만 내 코드는 여전히 DB에 테이블을 생성합니까? –

+0

'if_exists = 'append'' 나는 쓸 것이다 ... –

+0

는 오류를 가지고있다. AttributeError : 모듈'pandas.io.sql '에는'write_frame '속성이 없다. –

관련 문제