2010-09-03 55 views
1

以下代碼返回none。我該如何解決它?我正在使用Python 2.6。Python URL下載

import urllib 

URL = "http://download.finance.yahoo.com/d/quotes.csv?s=%s&f=sl1t1v&e=.csv" 
symbols = ('GGP', 'JPM', 'AIG', 'AMZN','GGP', 'JPM', 'AIG', 'AMZN') 
#symbols = ('GGP') 

def fetch_quote(symbols): 
    url = URL % '+'.join(symbols) 
    fp = urllib.urlopen(url) 
    try: 
     data = fp.read() 
    finally: 
     fp.close() 

def main(): 
    data_fp = fetch_quote(symbols) 
# print data_fp 
if __name__ =='__main__': 
    main() 

回答

4

你必須明確地returndatafetch_quote功能。事情是這樣的:

def fetch_quote(symbols): 
    url = URL % '+'.join(symbols) 
    fp = urllib.urlopen(url) 
    try: 
     data = fp.read() 
    finally: 
     fp.close() 
    return data # <======== Return 

在沒有一個明確的return語句的Python返回None這是你所看到的。

+0

我測試了這個修復程序,它的工作原理。 「GGP」,14.65,「12:04 pm」,689816 ... – msw 2010-09-03 16:20:57

+0

謝謝,修正了!!!! – Merlin 2010-09-03 16:22:45

2

你的方法沒有明確return任何東西,所以它returnsNone

+0

我該如何修復,謝謝 – Merlin 2010-09-03 16:13:40

+4

呃,退貨? – Santa 2010-09-03 16:14:22