[英]Writing Values From Python into Excel
我想做的就是通过将Yahoo Finance的股票价格放入电子表格中来使这行代码正常工作。 我问了很多人,我已经研究了这个问题,但还没有开始工作。
这是麻烦的代码行:
ws.cell(1,i+1).value = str.replace(price','price')
我收到类似的错误消息,“替换”需要一个“ str”对象,但是每次修改它时,都会收到一个“列表”或“ int”对象没有属性的消息,谢谢您的帮助。
from openpyxl import Workbook
import urllib
import re
from openpyxl.cell import get_column_letter
wb = Workbook()
dest_filename = r'empty_book.xlsx'
ws = wb.create_sheet()
ws.title = 'Stocks'
symbolslist = ["aapl","spy","goog","nflx"]
i=0
while i<len(symbolslist):
#counts each object as 1 in the list
url = "http://finance.yahoo.com/q?s="+symbolslist[i]+"&q1=1"
htmlfile = urllib.urlopen(url)
htmltext = htmlfile.read()
regex = '<span id="yfs_l84_'+symbolslist[i]+'">(.+?)</span>'
pattern = re.compile(regex)
price = re.findall(pattern,htmltext)
print "The price of", symbolslist[i], " is ", price
ws.cell(1,i+1).value = str.replace(price','price')
i+=1
wb.save(filename = dest_filename)
导入CSV模块比使用Excel进行数据分析要好,因为它是开源友好的。
我什至不认为您需要EXCEL API来执行此操作,您只是脱机工作,因此请使用CSV格式编写财务股票价格,然后使用EXCEL打开csv文件。 像这样(伪代码,不是精确的代码):
with( f=open( "a.csv" ) ):
f.writeline( ",".join(l) );
re.findall
返回一个列表对象,您可能想要获取列表的第一个对象。
可以只使用str.replace
从一个字符串对象,如price.replace('a', 'b')
应该使用ws.cell('F5')
而不是ws.cell(1,1)
来访问一个单元。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.