我想知道是否有人更好地理解python和gae可以幫助我。我將一個csv文件從表單上傳到gae數據存儲區。用谷歌應用引擎上傳和解析csv文件
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)
我遇到了同樣的問題,別人提到在這裏 - http://groups.google.com/group/google-appengine/browse_thread/thread/bb2d0b1a80ca7ac2/861c8241308b9717
也就是說,csv.reader是遍歷每個字符,而不是線。谷歌工程師離開了這個解釋:
調用self.request.get('csv')返回一個字符串。當迭代一個 字符串時,您將重複遍歷字符,而不是行。你可以看到 區別就在這裏:
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)
我真的不遵循的解釋,並沒有成功實現它。任何人都可以提供更清晰的解釋和建議的修復嗎?
感謝,
月
感謝您的解釋,現在對我來說更有意義。 – 2010-06-04 19:10:55
我會考慮使用.splitlines()而不是.split('\ n') – 2012-03-13 01:46:38