CSVファイルのデータをアップロードする方法
使用するモデルとCSVファイル
例として、以下のモデルを使用します。
class ExModel(db.Model): data1 = db.StringProperty() data2 = db.StringProperty() data3 = db.StringProperty()
アップロードするCSVファイルは data.csv とし、内容は以下とします。CSVファイルにはヘッダを必ず含みます。
data1,data2,data3 ←ヘッダ aaa,aaa,aaa bbb,bbb,bbb ccc,ccc,ccc
remote_apiの設定
app.yaml に以下を追記します。
- url: /remote_api script: $PYTHON_LIB/google/appengine/ext/remote_api/handler.py login: admin
アプリケーションを更新します。
$ appcfg.py update
http://
This request did not contain a necessary header
※ 最初に「builtins ディレクティブを使用した remote_apiのインストール」を行おうとしたが、上手くいきませんでした。認証の関係のエラーが出力されていました。
Bulk Loader の設定
設定ファイル bulkloader.yaml を自動作成します。
$ appcfg.py create_bulkloader_config --filename=bulkloader.yaml
作成された bulkloader.yaml を編集します。
… transformers: - kind: ExModel connector: csv property_map: - property: __key__ external_name: key export_transform: transform.key_id_or_name_as_string - property: data1 external_name: data1 - property: data2 external_name: data2 - property: data3 external_name: data3
データをインポートする
$ appcfg.py upload_data --config_file=bulkloader.yaml --filename=data.csv --kind=ExModel
こちらの URL を参考にさせていただきました。