[CODE] Python 3.2 : lecture d'un fichier .csv
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:
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:
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 !