pythonからスプレッドシートに読み書きするための初期設定
の編集
Top
/
pythonからスプレッドシートに読み書きするための初期設定
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
島部/menu/template
[[センサとマイコン(Arduino, Raspberry Pi)による行動分類]] #CONTENTS ~ ~ **[[1.Google Cloud Platformにて:https://console.developers.google.com/]] [#weea153e] 1.1 データ取得のために適当にプロジェクトを作成する~ #ref(23.PNG) [新しいプロジェクト]で適当に名前を入力する。~ 1.2 外部から操作するために2つのAPIを有効にする~ 左側にある[ライブラリ]を選択し[googleDriveAPi]をさがし、選択。有効にする~ 同じ手順で[GoogleSheetsAPI]も有効にする。無事2つが有効にできたら[ダッシュボード]が下図のようになる。 #ref(25.PNG,,40%) 1.3 認証情報~ 左側にある[認証情報]を選択し、認証情報を作成し、サービスアカウントを選択する。~ 適当にサービスアカウント名を入力して作成 #ref(26.PNG) アカウントの制限をProjectの編集者に設定。最後に作成をクリックするとアカウントができる #ref(27.PNG,,50%) #ref(28.PNG,,50%) 最後に秘密鍵を入手する。つくったサービスアカウントを選択し[キー]から鍵を作成する。~ #ref(29.PNG,,50%) そうするとPCに鍵が保存される.この時キーのタイプがJSONになっていることを確かめる。~ ~ ~ &color(red){最後に保存された秘密鍵の名前を[cilent_secret.json]にして任意のファイルに移動させる};~ 後にこのファイルにこれから使うコードを全部いれる~ **2.スプレッドシートカチコミ [#o3d3c0fe] 1の設定で作成したアカウントとスプレッドシートを共有する。 ~ ~ 2.1 共有~ 自身のgoogleドライブから新規でスプレッドシートを作成する。~ 適当に作ったgoogleのスプレッドシートの共有を選択し、先ほどのアドレスを追加する。~ ここのアドレスとは、28.PNGのメールアドレスっぽいやつである。この際に編集者として設定する。 #ref(30.PNG,,60%) ~ ~ 2.2 スクリプトエディタ~ スプレッドシートの[ツール]、[スプリクトエディタ]を開き、以下のコードを書き込む。 ~ function doPost(e) { var ss = SpreadsheetApp.getActive() //下の2行はどっちでもOK 2つ目はシート一枚目という意味 //de.kore.naniyo //var sheet = ss.getActiveSheet(); var sheet1 = ss.getSheets()[0]; var sheet2 = ss.getSheets()[1]; var jsonString = e.postData.contents; //jsonString = jsonString.replace('\\',''); //jsonString = jsonString.replace(/\}\"/,'\}'); var data = JSON.parse(jsonString).toString(); // sheet.appendRow(["そのまま",jsonString]); // sheet.appendRow([data]); // sheet.appendRow(["パース",typeof(data)]); var data2 = JSON.parse(data); // var last=sheet.getRange("A:A").getLastRow(); if (data2.key1){ sheet1.appendRow([data2.key1.nowtime,data2.key1.bio_data,data2.key1.camera]); sheet1.appendRow([data2.key2.nowtime,data2.key2.bio_data,data2.key2.camera]); sheet1.appendRow([data2.key3.nowtime,data2.key3.bio_data,data2.key3.camera]); sheet1.appendRow([data2.key4.nowtime,data2.key4.bio_data,data2.key4.camera]); sheet1.appendRow([data2.key5.nowtime,data2.key5.bio_data,data2.key5.camera]); sheet1.appendRow([data2.key6.nowtime,data2.key6.bio_data,data2.key6.camera]); sheet1.appendRow([data2.key7.nowtime,data2.key7.bio_data,data2.key7.camera]); sheet1.appendRow([data2.key8.nowtime,data2.key8.bio_data,data2.key8.camera]); sheet1.appendRow([data2.key9.nowtime,data2.key9.bio_data,data2.key9.camera]); sheet1.appendRow([data2.key10.nowtime,data2.key10.bio_data,data2.key10.camera]); sheet1.appendRow([data2.key11.nowtime,data2.key11.bio_data,data2.key11.camera]); sheet1.appendRow([data2.key12.nowtime,data2.key12.bio_data,data2.key12.camera]); sheet1.appendRow([data2.key13.nowtime,data2.key13.bio_data,data2.key13.camera]); sheet1.appendRow([data2.key14.nowtime,data2.key14.bio_data,data2.key14.camera]); sheet1.appendRow([data2.key15.nowtime,data2.key15.bio_data,data2.key15.camera]); sheet1.appendRow([data2.key16.nowtime,data2.key16.bio_data,data2.key16.camera]); sheet1.appendRow([data2.key17.nowtime,data2.key17.bio_data,data2.key17.camera]); sheet1.appendRow([data2.key18.nowtime,data2.key18.bio_data,data2.key18.camera]); sheet1.appendRow([data2.key19.nowtime,data2.key19.bio_data,data2.key19.camera]); sheet1.appendRow([data2.key20.nowtime,data2.key20.bio_data,data2.key20.camera]); sheet1.appendRow([data2.key21.nowtime,data2.key21.bio_data,data2.key21.camera]); sheet1.appendRow([data2.key22.nowtime,data2.key22.bio_data,data2.key22.camera]); sheet1.appendRow([data2.key23.nowtime,data2.key23.bio_data,data2.key23.camera]); sheet1.appendRow([data2.key24.nowtime,data2.key24.bio_data,data2.key24.camera]); sheet1.appendRow([data2.key25.nowtime,data2.key25.bio_data,data2.key25.camera]); sheet1.appendRow([data2.key26.nowtime,data2.key26.bio_data,data2.key26.camera]); sheet1.appendRow([data2.key27.nowtime,data2.key27.bio_data,data2.key27.camera]); sheet1.appendRow([data2.key28.nowtime,data2.key28.bio_data,data2.key28.camera]); sheet1.appendRow([data2.key29.nowtime,data2.key29.bio_data,data2.key29.camera]); sheet1.appendRow([data2.key30.nowtime,data2.key30.bio_data,data2.key30.camera]); } if(data2.mickey){ sheet2.appendRow([data2.mickey.nowtime,data2.mickey.mic]); } } #ref(コード.txt,,インデント的にうまくいかなかったらこっち) ~ ~ **3.サブスクリプション [#l33fee6c] なんかもうよくわかんないけど定期的にサブスクリプションキーを更新しなければなりません~ [[アズールのページ>https://azure.microsoft.com/ja-jp/features/azure-portal/]]の右上の「ポータル」から自分のアカウント(学校のがあるやろ)でログイン~ 「キーとエンドポイント」からサブスクリプションキーを生成する。~ なぜかこれを動かなくなったら更新しといて~ 私のキャパは限界なのでいい感じに負担減るようにして(なんかに登録?) ~ ~ 準備完了
タイムスタンプを変更しない
[[センサとマイコン(Arduino, Raspberry Pi)による行動分類]] #CONTENTS ~ ~ **[[1.Google Cloud Platformにて:https://console.developers.google.com/]] [#weea153e] 1.1 データ取得のために適当にプロジェクトを作成する~ #ref(23.PNG) [新しいプロジェクト]で適当に名前を入力する。~ 1.2 外部から操作するために2つのAPIを有効にする~ 左側にある[ライブラリ]を選択し[googleDriveAPi]をさがし、選択。有効にする~ 同じ手順で[GoogleSheetsAPI]も有効にする。無事2つが有効にできたら[ダッシュボード]が下図のようになる。 #ref(25.PNG,,40%) 1.3 認証情報~ 左側にある[認証情報]を選択し、認証情報を作成し、サービスアカウントを選択する。~ 適当にサービスアカウント名を入力して作成 #ref(26.PNG) アカウントの制限をProjectの編集者に設定。最後に作成をクリックするとアカウントができる #ref(27.PNG,,50%) #ref(28.PNG,,50%) 最後に秘密鍵を入手する。つくったサービスアカウントを選択し[キー]から鍵を作成する。~ #ref(29.PNG,,50%) そうするとPCに鍵が保存される.この時キーのタイプがJSONになっていることを確かめる。~ ~ ~ &color(red){最後に保存された秘密鍵の名前を[cilent_secret.json]にして任意のファイルに移動させる};~ 後にこのファイルにこれから使うコードを全部いれる~ **2.スプレッドシートカチコミ [#o3d3c0fe] 1の設定で作成したアカウントとスプレッドシートを共有する。 ~ ~ 2.1 共有~ 自身のgoogleドライブから新規でスプレッドシートを作成する。~ 適当に作ったgoogleのスプレッドシートの共有を選択し、先ほどのアドレスを追加する。~ ここのアドレスとは、28.PNGのメールアドレスっぽいやつである。この際に編集者として設定する。 #ref(30.PNG,,60%) ~ ~ 2.2 スクリプトエディタ~ スプレッドシートの[ツール]、[スプリクトエディタ]を開き、以下のコードを書き込む。 ~ function doPost(e) { var ss = SpreadsheetApp.getActive() //下の2行はどっちでもOK 2つ目はシート一枚目という意味 //de.kore.naniyo //var sheet = ss.getActiveSheet(); var sheet1 = ss.getSheets()[0]; var sheet2 = ss.getSheets()[1]; var jsonString = e.postData.contents; //jsonString = jsonString.replace('\\',''); //jsonString = jsonString.replace(/\}\"/,'\}'); var data = JSON.parse(jsonString).toString(); // sheet.appendRow(["そのまま",jsonString]); // sheet.appendRow([data]); // sheet.appendRow(["パース",typeof(data)]); var data2 = JSON.parse(data); // var last=sheet.getRange("A:A").getLastRow(); if (data2.key1){ sheet1.appendRow([data2.key1.nowtime,data2.key1.bio_data,data2.key1.camera]); sheet1.appendRow([data2.key2.nowtime,data2.key2.bio_data,data2.key2.camera]); sheet1.appendRow([data2.key3.nowtime,data2.key3.bio_data,data2.key3.camera]); sheet1.appendRow([data2.key4.nowtime,data2.key4.bio_data,data2.key4.camera]); sheet1.appendRow([data2.key5.nowtime,data2.key5.bio_data,data2.key5.camera]); sheet1.appendRow([data2.key6.nowtime,data2.key6.bio_data,data2.key6.camera]); sheet1.appendRow([data2.key7.nowtime,data2.key7.bio_data,data2.key7.camera]); sheet1.appendRow([data2.key8.nowtime,data2.key8.bio_data,data2.key8.camera]); sheet1.appendRow([data2.key9.nowtime,data2.key9.bio_data,data2.key9.camera]); sheet1.appendRow([data2.key10.nowtime,data2.key10.bio_data,data2.key10.camera]); sheet1.appendRow([data2.key11.nowtime,data2.key11.bio_data,data2.key11.camera]); sheet1.appendRow([data2.key12.nowtime,data2.key12.bio_data,data2.key12.camera]); sheet1.appendRow([data2.key13.nowtime,data2.key13.bio_data,data2.key13.camera]); sheet1.appendRow([data2.key14.nowtime,data2.key14.bio_data,data2.key14.camera]); sheet1.appendRow([data2.key15.nowtime,data2.key15.bio_data,data2.key15.camera]); sheet1.appendRow([data2.key16.nowtime,data2.key16.bio_data,data2.key16.camera]); sheet1.appendRow([data2.key17.nowtime,data2.key17.bio_data,data2.key17.camera]); sheet1.appendRow([data2.key18.nowtime,data2.key18.bio_data,data2.key18.camera]); sheet1.appendRow([data2.key19.nowtime,data2.key19.bio_data,data2.key19.camera]); sheet1.appendRow([data2.key20.nowtime,data2.key20.bio_data,data2.key20.camera]); sheet1.appendRow([data2.key21.nowtime,data2.key21.bio_data,data2.key21.camera]); sheet1.appendRow([data2.key22.nowtime,data2.key22.bio_data,data2.key22.camera]); sheet1.appendRow([data2.key23.nowtime,data2.key23.bio_data,data2.key23.camera]); sheet1.appendRow([data2.key24.nowtime,data2.key24.bio_data,data2.key24.camera]); sheet1.appendRow([data2.key25.nowtime,data2.key25.bio_data,data2.key25.camera]); sheet1.appendRow([data2.key26.nowtime,data2.key26.bio_data,data2.key26.camera]); sheet1.appendRow([data2.key27.nowtime,data2.key27.bio_data,data2.key27.camera]); sheet1.appendRow([data2.key28.nowtime,data2.key28.bio_data,data2.key28.camera]); sheet1.appendRow([data2.key29.nowtime,data2.key29.bio_data,data2.key29.camera]); sheet1.appendRow([data2.key30.nowtime,data2.key30.bio_data,data2.key30.camera]); } if(data2.mickey){ sheet2.appendRow([data2.mickey.nowtime,data2.mickey.mic]); } } #ref(コード.txt,,インデント的にうまくいかなかったらこっち) ~ ~ **3.サブスクリプション [#l33fee6c] なんかもうよくわかんないけど定期的にサブスクリプションキーを更新しなければなりません~ [[アズールのページ>https://azure.microsoft.com/ja-jp/features/azure-portal/]]の右上の「ポータル」から自分のアカウント(学校のがあるやろ)でログイン~ 「キーとエンドポイント」からサブスクリプションキーを生成する。~ なぜかこれを動かなくなったら更新しといて~ 私のキャパは限界なのでいい感じに負担減るようにして(なんかに登録?) ~ ~ 準備完了
テキスト整形のルールを表示する