Je me demande si quelqu'un avec une meilleure compréhension de python et gae peut m'aider avec cela. Je télécharge un fichier csv d'un formulaire dans le magasin de données gae.Télécharger et analyser le fichier csv avec google app engine
class CSVImport(webapp.RequestHandler):
def post(self):
csv_file = self.request.get('csv_import')
fileReader = csv.reader(csv_file)
for row in fileReader:
self.response.out.write(row)
Je suis en cours d'exécution dans le même problème que quelqu'un d'autre parle ici - http://groups.google.com/group/google-appengine/browse_thread/thread/bb2d0b1a80ca7ac2/861c8241308b9717
C'est, le csv.reader est itérer sur chaque personnage et non la ligne. Un ingénieur de Google a laissé cette explication:
Le self.request.get d'appel ('csv') renvoie une chaîne. Lorsque vous parcourez une chaîne , vous parcourez les caractères, pas les lignes. Vous pouvez voir la différence ici:
class ProcessUpload(webapp.RequestHandler):
def post(self):
self.response.out.write(self.request.get('csv'))
file = open(os.path.join(os.path.dirname(__file__), 'sample.csv'))
self.response.out.write(file)
# Iterating over a file
fileReader = csv.reader(file)
for row in fileReader:
self.response.out.write(row)
# Iterating over a string
fileReader = csv.reader(self.request.get('csv'))
for row in fileReader:
self.response.out.write(row)
Je ne suis pas l'explication, et sans succès sa mise en œuvre. Quelqu'un peut-il fournir une explication plus claire de ceci et d'une solution proposée?
Merci, Août
Merci pour l'explication, c'est beaucoup plus logique pour moi maintenant. –
J'envisagerais d'utiliser .splitlines() au lieu de .split ('\ n') –