Bonjour à tous !

Je cherche désespérément à résoudre un problème que je ne rencontre que sur la version 3.2 de python, puisque j'ai réussi avec la version 2.7.
Je cherche en fait à importer des données financières depuis Yahoo finance, sous forme de fichier .csv pour les traiter ensuite avec python. Mais je n'arrive pas à ouvrir le fichier .csv correctement, une histoire de code ASCII, utf-8, mais je n'ai pas réussi à en savoir plus malgré Google et la doc Python... :/

Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
url = "http://ichart.finance.yahoo.com/table.csv?s=BNP.PA&d=5&e=26&f=2012&g=d&a=0&b=1&c=2012&ignore=.csv"#adresse correcte
 
def Write_url(code,nom,url):
    file = urllib.request.urlopen(url)
    reader = csv.DictReader(codecs.EncodedFile(file, 'ASCII'))         #Je pense avoir compris que c'est ici que ça coince...
    for row  in reader:
        print(row)
        cursor.execute("insert into "+str(nom)+" values (:Date, :Open, :High, :Low, :Close, :Volume);", row)
Et le message d'erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
Write_url(code,nom,url)
    File "C:\Yahoo Finance fi.py", line 87, in Write_url
        for row in reader:
    File "C:\Python32\lib\csv.py", line 109, in __next__
        self.fieldnames
    File "C:\Python32\lib\csv.py", line 96, in fieldnames
        self._fieldnames = next(self.reader)
 csv.Error: iterator should return strings, not bytes (did you open the file in text mode?)
Je ne comprends pas... Sur la version 2.7 il suffisait de faire urllib.urlopen(url) puis csv.Dictreader() et ça marchait tout seul, mais là Python demande une manip en plus et je ne vois pas laquelle.

Merci pour votre aide,
Bonne soirée !