首页 > 解决方案 > 将报价流式传输到 Excel

问题描述

我正在尝试使用 python 在 excel 中使用流式报价。请记住,这是我第一次尝试学习 python。我已经能够从 IexFinance API 中获取引号,并从那里通过 Python 将数据保存到 CSV 中,然后我会创建一个宏以每隔几秒钟在 excel 中刷新 CSV。但是,似乎 csv 需要一段时间才能更新,并且不像其他网站上的流式报价那样流畅。那么首先,有没有一种更简单的方法可以通过python将流式报价导入excel?有什么方法可以让我每秒更新一次引号,还是 excel 或 python 延迟了引号的更新速度?

amd.get_price()
import pandas
import pandas as pd
from iexfinanace.stocks import Stock
import csv
import time
batch=Stock(['amd', 'tsla'], output_format='pandas')
df=batch.get_price()
df.to_csv('stock.csv')

#loop
starttime=time.time()
while True:
    batch=Stock(['amd', 'tsla'], output_format='pandas')
    df=batch.get_price()
    df.to_csv('stock.csv')
    time.sleep(0.05-((time.time()-starttime) % 0.05))

标签: pythonexcel

解决方案


您可以创建一次 csv,然后对其进行更新,使用 pandas、xlwt 或任何其他类似的模块

以python为例:

import pandas
import pandas as pd
from iexfinanace.stocks import Stock
import csv
import time
batch=Stock(['amd', 'tsla'], output_format='pandas')
df=batch.get_price()
df.to_csv('stock.csv')

#loop
starttime=time.time()
batch=Stock(['amd', 'tsla'], output_format='pandas')
df=batch.get_price()
df.to_csv('stock.csv')
while True:
    batch=Stock(['amd', 'tsla'])
    df=batch.get_price()
    df.to_csv('stock.csv')
    time.sleep(0.05-((time.time()-starttime) % 0.05))
    xl_spreadsheet = pd.read_csv(Location,header=None)
    xl_spreadsheet['{INSERT LOCATION}'].value = {batch insert for var of amd}
    xl_spreadsheet['{INSERT LOCATION}'].value = {batch insert for var of tsla}

推荐阅读