#author("2021-07-30T18:31:39+00:00","","")
#author("2021-07-30T18:32:56+00:00","","")
[[技術メモ]]

*csv以外のファイル出力に関して [#sf5048b3]
**csvの場合 [#q4adf394]
#ref(csv出力ブロックの記述.png,,50%)~
~
-基本出力ブロックのコード+ファイルdownload関数のセットになっている

-普通はjson.dumpsの時点で2次元配列になっており、それが変数a(中の値は数値はそのまま、文字列はエンコードされている)↓
 '[["\\u592b\\u5a66\\u3067\\u4f55\\・・・'

-csv出力ブロック用のdownload関数では2次元配列を.joinで文字列にし、bomをcsvの先頭についてくるエンコーダの判別に使う(らしい)~
https://qiita.com/megadreams14/items/b4521308d5be65f0c544

-blobのtypeではダウンロードするファイルの形式を指定する~
↓ファイルごとのtype記述方法~
https://qiita.com/AkihiroTakamura/items/b93fbe511465f52bffaa

-(別物aのインスタンスフィールドの)href(downloadリンク)、filename(出力ファイル名:デフォ=undefined)、click()(勝手にダウンロードボタンを押す関数)、revokeObjectURL(url)はたぶん絶対必要

**jsonファイル出力 [#ddd8c59b]
#ref(json出力ブロックの正しい記述.png,,50%)~
~
-dict形式(.json)を出力するために作成

-辞書なのでcontent.mapとbomを作る必要がない
→辞書のvalueはエンコードされるが、後で直る
 '{"nodes": [{"id": "\\u672d\\u5e4c\\u5e02", "group": 1}, {"id": ・・・'
(dump後のprintfで''が取れる)~

-----
→出力データの形式に応じて、特殊なものを取り除いて純粋な文字列(''取ったら正しい形式)にするアプローチが正解?
-----

-2次元配列と同様、文字列にする必要があるのでblobは文字列変換&type変更
 [JSON.stringify(content)]
 type: "application\/json"
(そのままcontentにするとjsonファイルの中身は[object Object]だけになる)~
https://hacknote.jp/archives/12274/

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS