0

我将从 alpha vantage API 获取财务信息,并将答案直接写入我的数据库中。

它工作得很好,但 CSV 答案的第一行是标题。

如何跳过第一行?

非常感谢。

    #db-connection#
import mysql.connector
mydb = mysql.connector.connect(host="localhost",port="+++",user="+++",passwd="+++",database="++++")
mycursor = mydb.cursor()


#data#
from alpha_vantage.timeseries import TimeSeries
import csv
ts = TimeSeries(key='+++++', output_format='csv')
data, meta_data = ts.get_intraday(symbol='MSFT',interval='1min', outputsize='compact')
print(data)

#write data in db#

for row in data:
        mycursor.execute('INSERT INTO import (date ,open, high, low, close, volume) Values (%s,%s,%s,%s,%s,%s)',row)


mydb.commit()

print("1 record inserted, ID:", mycursor.lastrowid)

mycursor.close()
mydb.close()
print("Connection Closed")

数据库中的第一行是来自 API / CSV 答案的标题。

4

2 回答 2

0

只是不对第一行做任何事情?

for i, row in enumerate(data):
    if i == 0:
         continue     
    mycursor.execute('INSERT INTO import (date ,open, high, low, close, volume) Values (%s,%s,%s,%s,%s,%s)',row)
于 2019-07-05T09:54:37.023 回答
0

表达这一点的另一个习惯用法是调用next迭代器,例如:

data_it = iter(data)
header = next(data_it)
for row in data_it:
     mycursor.execute(SQL_STATEMENT, row)
于 2019-07-05T10:23:03.560 回答