[Python-de] Chart-Beispiel

Dinu Gherman gherman at darwin.in-berlin.de
Wed Nov 6 13:52:09 EST 2002


Andreas Grytz:

> Die URL ist soweit komplett und richtig als das sie mit dem URL auf der
> Yahoo-Seite fast übereinstimmt. Einziger Unterschied - nach dem URL  
> dort
> müsste Zeile 60 lauten:
>
> format = format + "&s=%s&y=0&g=d&ignore=.csv"
> 			       ^
> 		Hier heißt es im Listing "w"
> Da schaue ich noch mal in den Originaltext vom Autor.
>
> Eventuell ist Dir beim Abtippen eine Fehler unterlaufen. Schuss ins
> Blaue:
>
> format = format + "&s=%s&y=0&g=d&ignore=.csv"
> 		      ^ Hier steht bei Dir kein Prozentzeichen.
> Das ist aber der Platzhalter im Formatstring für die Werte der Variable
> val in der Schleife ab 63.

Es werde Licht... Zwei "prints" an strategischer Stelle und man sieht
folgende URLs werden korrekt erstellt:

    
http://table.finance.yahoo.com/ 
table.csv?a=1&b=1&c=2002&d=7&e=31&f=2002&s=ibm&y=0&g=w&ignore=.csv
    
http://table.finance.yahoo.com/ 
table.csv?a=1&b=1&c=2002&d=7&e=31&f=2002&s=aapl&y=0&g=w&ignore=.csv

Der Parameter "g=w" in beiden URLs bedeutet, Datenzeilen sind "weekly"
und nicht "daily", was die volle Absicht des Erfinders war.

Man erhaelt also jeweils folgende paar Anfangszeilen:

   Date,Open,High,Low,Close,Volume
   26-Aug-02,80.40,80.89,75.10,75.38,6997800
   19-Aug-02,79.35,82.85,79.01,80.40,10803900
   12-Aug-02,71.05,79.98,70.61,79.35,5263300
   ...
   11-Feb-02,104.77,108.91,101.47,102.66,6271900
   4-Feb-02,107.76,108.26,102.38,104.76,6601900
   1-Feb-02,107.40,109.06,106.40,107.76,6799500

und

   Date,Open,High,Low,Close,Volume
   26-Aug-02,15.95,15.95,14.51,14.75,3392300
   19-Aug-02,15.78,16.25,15.45,15.73,3867100
   12-Aug-02,14.90,16.10,14.54,15.81,3210100
   ...
   11-Feb-02,23.93,25.24,23.74,23.90,7117900
   5-Feb-02,25.09,25.98,23.37,24.03,8158700

Ulkigerweise liefert Yahoo nun also unterschiedlich viele Zeilen
zurueck (haben die den Artikel auch gelesen?), was man durch einen
zusaetzlichen Hack vor dem Aufruf von makeChart() z.B. wie folgt
in den Griff bekommt:

   values = map(lambda s:s[:len(cats)], values)

Anbei fuege ich die so erweiterte Datei an. Ich habe das LM um
Klaerung bzgl. der fehlenden Listings gebeten...

Gruss,

Dinu

--
Dinu C. Gherman
......................................................................
"Illusion is the first of all pleasures." (Oscar Wilde)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: yahoochart.py
Type: application/text
Size: 2205 bytes
Desc: not available
Url : http://starship.python.net/pipermail/python-de/attachments/20021106/8785f2a0/yahoochart.bin


More information about the Python-de mailing list