如何使用Python从.CSV文件中收集数据?

时间:2012-10-16 00:46:07

标签: python xml json csv yahoo-api

我正在尝试使用Yahoo! Finance API使用Python收集当前股票报价,这是我特别陌生的语言。雅虎! Finance API似乎以.CSV文件的形式提供其数据,可以下载。

我想知道使用这些数据的最佳方法是什么?下载文件然后阅读它是否效率低下;有没有一种方法可以将它转换为JSON或XML文件,我可以使用urllib之类的东西进行解析?

我收到的.CSV是在下一页生成的,在本例中是Microsoft的引用(MSFT):

  

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

非常感谢提前。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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'}

for循环中的row是哈希表,很容易处理