2011-05-09 5 views
0

J'ai exporté un fichier au format CSV. Dans Excel, les données sont tous dans la première colonne (quatre colonnes par ligne), et il ressemble à ceci -Script Python pour convertir csv en vue de le vider dans la base de données

like "name"  "email"   "message" 
"yes" "John Smith" "[email protected]" "My message" 
...etc. 

Quand j'importer le fichier, ce que je reçois -

'"""like"",""name"",""email"",""message"""\r"" 
"yes"",""John Smith"",""[email protected]"",""My message"""' 

Comment convertir cette chaîne en Python pour pouvoir l'insérer dans une base de données? J'imagine que je devrais séparer chaque rangée dans une liste, et courir une boucle for pour fermer la première rangée avec tous les autres. Créez ensuite un dict à partir de la liste des tuples et insérez-le dans la base de données. Est-ce que cette méthode semble correcte? Comment pourrais-je convertir cette chaîne étrange en cela - j'avais des difficultés à essayer de le faire? Je vous remercie.

Mise à jour

Accordé ce n'est pas le plus efficace/méthode pratique pour le faire ...

Aller dans le sens inverse de la fin -

{'like':'yes','name':'John Smith','email': '[email protected], 'message': 'My message'} 

Cela pourrait être arrivé en faisant -

zip[('like','name','email','message'),('yes','name','email','message')] 

Et en utilisant une boucle for de sorte que le zip serait effectué sur (tuple[0],tuple[n]). Donc, comment je convertirais la chaîne python brute en une liste de tuples telle que je pourrais l'ajouter à la base de données - est-ce qu'il y a une meilleure façon de le faire (en excluant l'utilisation de modules python pour y parvenir facilement)?

+0

Pouvez-vous donner un exemple du format exact que vous cherchez pour? Avez-vous déjà écrit un code? Avec quelle partie avez-vous des problèmes? –

Répondre

2

Utiliser la bibliothèque standard de Python pour analyser le fichier CSV et extraire les données que vous devez mettre dans votre base de données:

import csv 
with open('some.csv', 'rb') as f: 
    reader = csv.reader(f, delimiter=' ') 
    for row in reader: 
     print row 

Source: http://docs.python.org/library/csv.html

Questions connexes