J'ai un fichier CSV de données boursières que je voudrais mettre dans un dictionnaire contenant les dates et prix de clôture.Comment formater une liste de dictionnaires à partir de CSV? - Python
Voici ce que le CSV ressemble à: date close volume open high low 2017/09/22 151.89 46575410 152.02 152.27 150.56 2017/09/21 153.39 37350060 155.8 155.8 152.75 2017/09/20 156.07 52126240 157.9 158.26 153.83 2017/09/19 158.73 20565620 159.51 159.77 158.44
Je voudrais le dictionnaire final à être organisé comme ceci:
perfect_dict = [
{'Date': '2017/09/22', 'Close': '151.89'},
{'Date': '2017/09/21', 'Close': '153.39'},
...]
Mon code actuel saisit les données CSV et crée deux listes distinctes pour les dates et les prix de clôture. J'ai essayé d'utiliser dict(zip(dates, close_prices)
mais cela ne formate pas le nouveau dictionnaire comme je l'ai mentionné ci-dessus. Ceci est mon code:
import csv
from collections import defaultdict
# --->
columns = defaultdict(list)
with open('mydata.csv') as f:
reader = csv.DictReader(f)
for row in reader: value2,...}
for (k,v) in row.items():
columns[k].append(v)
dates = columns['date']
close_prices = columns['close']
# This is what doesn't format it right
#stock_dict = dict(zip(dates, close_prices))
#pprint.pprint(stock_dict)
Si quelqu'un pouvait me pointer dans la bonne direction ce serait génial, merci!
J'ai une question. Pourquoi votre fichier de valeurs séparées par des virgules n'est-il pas séparé par des virgules? – HyperNeutrino
Il y a deux choses qui ne vont pas. Vous attendez dictionnaire de dictionnaires en tant que sortie. Cependant, il n'y a pas de clé associée à chaque sous-dictionnaire. Aussi, vous n'avez pas de virgule dans le fichier csv. –
@HyperNeutrino Je vois ce que tu veux dire, lol. Ces données sont simplement copiées dans une feuille de calcul Google, c'est pourquoi – jblew