2012-10-16 45 views
0

我正在尝试使用Yahoo!金融API使用Python收集当前股票报价,这是我特别熟悉的一种语言。雅虎! Finance API似乎以可以下载的.CSV文件的形式提供他们的数据。应该如何使用Python从.CSV文件收集数据?

我想知道使用这些数据的最佳方式是什么?下载文件并读取文件效率不高,有没有一种方法可以将它转换为JSON或XML文件,我可以使用类似urllib的东西解析?

正在以下页面上生成我得到该.csv,在这种情况下,微软(MSFT)的报价:

http://finance.yahoo.com/d/quotes.csv?s=MSFT&f=snl1

提前非常感谢。

回答

3

Python有一个内置的csv模块。

http://docs.python.org/library/csv.html

要回答你的问题下载:

file = r"http://finance.yahoo.com/d/quotes.csv?s=MSFT&f=snl1" 

import urllib 
text = urllib.urlopen(file).read() 

>>> print text 
... "MSFT","Microsoft Corpora",29.51 
+0

谢谢你的快速解答!我会阅读该文档。 – zch

+0

只需访问Yahoo链接,Python能自动下载csv文件吗? – zch

+1

@zch course.use [urllib](http://docs.python.org/library/urllib.html) – iMom0

1

基于csv模块和DictReader,这将是更容易的urlopen后,解析数据,我重用上面的代码从@kreativitea

import csv 
import urllib 

file = r"http://finance.yahoo.com/d/quotes.csv?s=MSFT&f=snl1" 

quotefile = urllib.urlopen(file) 
fieldheaders = ["abbr","name","index"] 
reader = csv.DictReader(quotefile,fieldnames=fieldheaders) 

for row in reader: 
    print row 

结果是

$ quote.py 
{'index': '29.51', 'abbr': 'MSFT', 'name': 'Microsoft Corpora'} 

row for循环是哈希表,这是很容易对付

+0

好主意 - 谢谢! – zch

相关问题