フォームからCSVファイルをアップロードしていて、Pythonで最初の行を取得したいと考えています。私はApp Engineアプリケーションを使用しており、webapp2を使用しています(関連性があるかどうかはわかりません)。GoogleのアプリケーションエンジンでCSVファイルをアップロードして読み込みます
私はフォーラムで見つけた多くの回答を試みましたが、何も動いていません。私が試した:
def post(self):
csv_file = self.request.POST.get('csvFile')
fileReader = csv.reader(csv_file.file)
しかし、私は得る:私も試したAttributeError: 'unicode' object has no attribute 'file'
:
def post(self):
csvFile = self.request.get('csvFile')
print csvFile
stringReader = csv.reader(StringIO.StringIO(csvFile))
for row in stringReader:
print row
しかし、私は得る:
私のprint文のためのC:\fakepath\my_file.csv ['C:\\fakepath\\my_file.csv']
(Iかrequest.getまたはrequest.POST.getを実行します)。
def post(self):
content = self.request.POST.multi['csvFile'].file.read()
しかし、私は得る::
私も試みAttributeError: 'str' object has no attribute 'file'
私も試してみました:
def post(self):
csvFile = self.request.files['csvFile']
file = open(csvFile, 'r')
しかし、私は得る:AttributeError: files
私も試してみました:
def post(self):
csvFile = self.request.POST['csvFile'].value.decode('utf-8')
file = csvFile.splitlines()
data = csv.DictReader(file)
しかし、私は得る:AttributeError: 'unicode' object has no attribute 'value'
これらのソリューションの多くは、他の人のために働くように見えるので、私はこれらのエラーを理解していません。
私のフォームは、この(私が使用しているポリマー)のようになります。
<form is="iron-form" action="/upload" method="POST" enctype="multipart/form-data"
on-iron-form-submit="_formSubmitted" id="form" name="form">
<div class="box">
<input type="file" name="csvFile" id="file" class="inputfile"
data-multiple-caption="{count} files selected" multiple on-tap="_chooseFile"/>
<label for="file" name="label">
<span>Choose a CSV file...</span></label>
</div>
は、あなたが提案を持っていますか? ありがとうございました!