#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/