シンプルな CSV ファイルを GAE アプリにインポートしていて、リストの最初の項目を選択したいと考えています。以下のコードは CSV ファイルをインポートし、各行をリストとして保存します。各リスト項目の最初のエントリのみを表示したいのですが、data[1] を使用すると範囲外と表示されます。明らかな何かが欠けていると思いますが、それを理解できないようです。どんな助けでも大歓迎です!
class CSVImport(webapp2.RequestHandler):
def post(self):
csv_file = self.request.get('csv_import')
fileReader = csv.reader(csv_file.split("\n"))
dataset = []
dataset.extend(fileReader)
for data in dataset:
self.response.out.write(data)
編集1
参考までに、最初のコードは次の応答を返しました: ['name'、'description'、'url'、'category'、'deliverycost'、'returning'、'provider'、'prov_id'、'logo'、'last_update ']['Amazon', 'desc を変更しました', 'http://www.url.com', 'Meta', '5 Euro', 'Gratis', 'Affilinet', 'Test', '/images/ logos/amazon.jpg', '2012-12-26 13:11:22.519000']['B ショップ', '', 'http://www.url.com', '', '', '', '', '', '', '2012-12-26 13:19:01.545000']['Otto', '何かをテストする', 'http://amazon.de', 'メタ', '', ' sdgs', 'sdgsdg', 'sdgds', 'dsgdsg', '2012-12-26 13:09:10.716000'][]
RocketDonkey の回答に基づいて、コードを次のように書き直しました。
class CSVImport(webapp2.RequestHandler):
def post(self):
csv_file = self.request.get('csv_import')
with open(csv_file, 'rb') as f:
fileReader = csv.reader(f)
for data in fileReader:
print data[0]
ただし、これにより次のエラーが発生します: IOError: [Errno 13] ファイルにアクセスできません: 'name,description,url,category,deliverycost,returning,provider,prov_id,logo,last_update\r\nAmazon,Changed the desc,http:// www.url.com、メタ、5 ユーロ、無料、アフィリネット、テスト、/images/logos/amazon.jpg、2012-12-26 13:11:22.519000\r\nB ショップ、http://www.url .com,,,,,,,2012-12-26 13:19:01.545000\r\nOtto,何かをテストしてください,http://amazon.de,Meta,,sdgs,sdgsdg,sdgds,dsgdsg,2012-12- 26 13:09:10.716000\r\n'
「 accessible: 」の後のコンテンツは、CSV ファイルの正確なコンテンツです。これが、「ファイルにアクセスできません」というエラーが注目に値する理由です。CSV ファイルは、次のような HTML フォームから取得されます。
<form action="/admin/shop/import" method="post" enctype="multipart/form-data">
<p><strong>Import:</strong>
<input type="file" name="csv_import" id="csv_import" accept=".csv">
<input type="submit" value="Import"></p>
</form>
RemoteAPI がおそらくこれに対するより良い解決策であることは承知していますが、Windows 7 でこれを設定するのに問題があるため、今のところ回避策としてこれを構築しようとしています。したがって、CSV ファイルの 1 つの列からデータを選択できるようになったら、定義したデータベース モデルと照合します。