Google Cloud Storageのバケットの中にMySQLのina csv形式の結果セットを書き込む必要があります。Google Cloud StorageのCSVファイルにMySQLの結果を書き込む
import cloudstorage
from google.appengine.api import app_identity
import db # My own Mysql wrapper
dump = db.get_table_dump(schema) # Here I made a simples SQL SELECT and fetchall()
bucket_name = app_identity.get_default_gcs_bucket_name()
file_name = "/" + bucket_name + "/finalfiles/" + schema + "/" +"myfile.csv"
with cloudstorage.open(file_name, "w") as gcsFile:
gcsFile.write(dump)
それが原因write
は、文字列パラメータを期待してdump
はタプルのタプルがfetchall()
に起因している」動作しませんでした:指示here後
GAE環境でファイルを書き込めないため、hereのようにタプルからCSV文字列を作成できないため、this approach(または類似のもの)を使用できません。実際には、私はそれを試して、それは時間がかかりすぎると終了する前にタイムアウトする)。
私の質問は、結果セットをMySQLから取得し、Google Cloud Storage BucketにCSVとして保存する最良の方法です。
メモリファイルに書き込むことはできますか? –
申し訳ありません@JohannesReichard、しかし私はあなたの質問を理解しませんでした。私はGAEの中で新しくなっています。メモリファイルは私が書き込めるものですか? – James
私はGAEを一度も使用しませんでしたが、pythonはハードドライブ上のファイルに書き込むだけでなく、メモリにあるオブジェクトのようなファイルにも書き込みをサポートします:docs.python.org/3/library/io.html#in-memory –