Missing decimals in the code - some suggestions?

Ian Kelly ian.g.kelly at gmail.com
Tue Apr 16 14:20:18 EDT 2013


On Tue, Apr 16, 2013 at 12:02 PM,  <hmjeltevik at gmail.com> wrote:
> Hi!
>
> I am using ystockquote with the following code:
>
> def get_historical_prices(symbol, start_date, end_date):
>     """
>     Get historical prices for the given ticker symbol.
>     Date format is 'YYYYMMDD'
>
>     Returns a nested list.
>     """
>     url = 'http://ichart.yahoo.com/table.csv?s=%s&' % symbol + \
>           'd=%s&' % str(int(end_date[4:6]) - 1) + \
>           'e=%s&' % str(int(end_date[6:8])) + \
>           'f=%s&' % str(int(end_date[0:4])) + \
>           'g=d&' + \
>           'a=%s&' % str(int(start_date[4:6]) - 1) + \
>           'b=%s&' % str(int(start_date[6:8])) + \
>           'c=%s&' % str(int(start_date[0:4])) + \
>           'ignore=.csv'
>     days = urllib.urlopen(url).readlines()
>     data = [day[:-2].split(',') for day in days]
>     return data
>
> This code prints the data, but only 2 decimals. I need to print out 4 decimals.
>
> print ystockquote.get_historical_prices('EURUSD=X','20120101','20120301')
>
> Some suggestions?

This isn't a Python question.  If you take a look at the csv file that
you download from Yahoo, you will see that it only contains 2 digits
of precision.  There's no way to make Python print out 4 digits of
precision when it is only provided with 2.  You will need to find out
if there is a way to ask for more precision in the Yahoo API.



More information about the Python-list mailing list