【Google app engine】CSVファイルをアップロード

スポンサーリンク

久々にGoogle app engine データストアへCSVアップロードの手順。

備忘録として。
久しぶりにGoogle app engine上のデータストアにファイルをアップロードしようと
したところ、以前にやったことをすっかり忘れていたのでメモ。
Google app engineにCSVロードをアップロードする場合。

はじめにremote_apiへのアクセスできるように設定。
app.yamlに以下のどちらかを設定

builtins:
- remote_api: on
- url: /remote_api
script: $PYTHON_LIB/google/appengine/ext/remote_api/handler.py
login: admin
まず、プログラムソース上でデータストアを使う準備をしとく。
class hoge(db.Model):
id = db.IntegerProperty()#数値
name = db.StringProperty(multiline=True)#文字
num = db.IntegerProperty()
list = db.StringProperty()
データストアでサポートされているエンティティの
プロパティの値の型は上のリンクから。

SDKよりbulkloader.ymalを生成する。

注意:SDK環境(http://localhost:8080)からは生成不可。
実際のデプロイされた環境から生成すること。

./appcfg.py create_bulkloader_config --url=http://apriname.appspot.com/remote_api --filename=bulkloader.yaml
最後のremote_apiは独自URL。URLを設定していない場合は、/_ah/admin/にて。

また、bulkloader.ymalは作成したあと、一部編集する必要があり。 生成したbulkroader.ymal内の一番したにあるtransformers: の下を追加。以下、サンプル

transformers:

- kind: hoge #DBの名前と同じにする
connector: csv #アップロードするファイルの種類
connector_options:
encoding: utf-8 #文字コードの指定
property_map:
- property: id # 各種エンティティと同じ物を配置する
external_name: id
import_transform: int #データの種類を指定。指定しないとstr扱い?

- property: name
external_name: name


- property: click
external_name: click
import_transform: int

- property: label
external_name: label

ここまでできたら、アップロードを実行。
./appcfg.py upload_data --config_file=bulkloader.yaml  --filename=./csvファイルへのパス/csv-file.csv  --kind=hoge --url=http://localhost:8080/remote_api
スポンサーリンク

シェアする

フォローする

スポンサーリンク