私たちはRuby onRails の主要なマルチテナントライブラリ apartment を使ってサービスを提供しています。Ruby のバージョンを 3.1 系から 3.2 系に上げたときにCSV ファイルを処理する部分でこのテナントの切り替えが意図通りに動作しませんでした。 この事象が興味深かったので共有します。 現在はこの事象に対応済で、私たちの環境はRuby3.2 系で動作しています。 apartment ではマルチテナント対応部分をほとんど吸収してくれるので、アプリケーションのコードのほうにはあまりマルチテナント特有の処理が出てこず、個別処理のコードに集中できるメリットがあります。 事象が発生したコードは以下のような形式でした。CSV.parse(filename, headers: true, header_converters: ->(header) { curren

今回は、以下のように指定しました。表示オプションはデフォルトのままです。 地点を選ぶ:東京 項目を選ぶ(データの種類):時別値 項目を選ぶ(項目):気温 期間を選ぶ:2019/1/1~2019/12/6 データの項目は「日時」「気温」「品質情報」「均質番号」の4種類。品質情報、均質番号は、観測値が正常かどうかに関する情報です。各項目の詳細については、同サイトの「ダウンロードファイル(CSVファイル)の形式」ページを参照してください。 ファイルの先頭5行には、次の画像のような項目が入っています。このまま使うとやや面倒なので、あらかじめ先頭5行分は削除し、全てデータ行のみのCSVファイルに加工しておきます。CSVファイルの仕様にはバリエーションがあり、その全てに対応するとコードが複雑になりますので、今回は気象庁のCSVデータに基づき、次の仕様を前提とします。 文字種は、ANK(1バイト文字)

Google スプレッドシート(共有)をCSV や TSV 形式でコマンドライン(curl)からゲット 2018-02-16-1 [Tips][Programming] 今更ですが、今年は家庭内での様々な用途でグーグルスプレッドシートを活用する所存です。 で、curl や wget を使ってTSV形式でダウンロードできたらスクリプトで処理しやすいなと思い、その方法を調べました。 基本 「google spread sheetでcsvの export urlを出力する - Qiita」より。 スプレッドシートのURL: https://docs.google.com/spreadsheets/d/{sheet_id}/edit#gid={page_id}curl でダウンロード:curl -L -o a.csv 'https://docs.google.com/spreadsheets

trdsqlというコマンドラインツールを作りました。Goで作ってます。githubの trdsqlからダウンロード出来ます。 またLinux/Windows/macOSのバイナリもあります。 以下は、古くなっている内容もいくつかあります。 最新版に対応した、より詳細な内容は trdsql 目次 | Noboru Saito's page を参照して下さい。 これは何? 簡単に言えばCSV(TSV含む)やLTSVに対してSQLを実行できるツールです。 同様のツールが q やtextql 等いくつかあります。 trdsqlはPostgreSQLドライバとMySQLドライバを含んでいて実際にDBに接続することでSQLite以上の機能を使用できるようにしています。 PostgreSQLやMySQLの構文が使えるだけではなく、CSVファイルと実テーブルでJOINしたり、CSVファイルからテーブ

「最近入ってきたユーザーのデータがちょっと欲しいんだけど...」 等と言って、特にエンジニア以外のPMだったりビジネスサイドの人に、Excelで見られるデータを求められることってないですか? そのくらいお安いご用と言いたいけれど、実際、本番の最新のデータを元に、csvとかxls形式のファイルを吐き出して、ローカルに持ってくるのは意外とめんどい。RubyのCSVモジュールがあんまりイケてなくて、to_csvみたいに扱えないので、コード書くのも意外とめんどい。 みたいなことがあります。 こんなときに作っておくといいのが、Arrayクラスについたto_tsvメソッド。 to_csvではなくto_tsvなことがミソ。TSVだとExcelにコピペできます。

一部誤訳の指摘があったため、修正しました!ご迷惑おかけして申し訳ございません! あなたは自分でCSVを書いてみたいですか? フィールドはコンマで区切り、行は改行で分けます。簡単ですよね。数行書けば勝手が分かるというものです。 でも、ちょっと待ってください。 フィールド内にコンマがある場合は? ダブルクォート(”)で、該当のフィールドを囲みましょう。簡単ですね。 では、ダブルクォートで囲めるフィールドに例外はあるのでしょうか? フィールド内にダブルクォートがある場合は? フィールド内の各ダブルクォートに対して、ダブルクォートを二重化して適用しましょう。そうすれば元のダブルクォートをエスケープすることができます。 なお、二重化したダブルクォートと空フィールドを囲んでいるダブルクォート( ...,"",... )を勘違いしないように気を付けてください。 フィールド内に改行がある場合は? その場合

概要 MS-Access 上で郵便番号を住所変換するためには、住所入力支援機能が提供されている。 しかし、元になっている辞書ファイルのアップデートが遅れたり、用途に応じてカスタマイズするには限界があるなどの理由から、日本郵政公社が配布している郵便番号データを利用して、オリジナルの郵便番号⇒住所変換機能を実装する方法も、広く知られている。 日本郵政公社(執筆当時。現・郵便事業株式会社)が配布している郵便番号データは単純なCSV 形式のため、加工がしやすく、初・中級クラスのVBA の知識があれば簡単に応用が効く、というのが、私が見聞きした範囲での一般的な認知のようだ。 しかし最近になって、ふとしたことから実際にそのCSV データを見る機会が有り、いくつかの疑問点・問題点が浮かび上がってきた。 はたして日本郵政公社のCSV データは、本当に使いやすいのだろうか? 仕様 まず、仕様を確認し
この違いはとても大きいです。Ruby 1.9 では日本語の1文字を1文字として扱いますが、Ruby 1.8 ではそうはいきません。Ruby 1.8 では同じ日本語でも、それを構成しているバイトコードの中身まで見えてしまうのです。 同じ日本語でもエンコードの方法によっては違うバイトコードの並びになります。 その中には今回区切り文字や囲み文字として採用したカンマ(,)やダブルクオーテーション(")に該当してしまうものが存在するかもしれません。 かといって、Ruby 1.8 でエンコードを意識して文字単位で処理をするのはとても難しいような気がします。 少なくとも、僕が持っている文字コードの知識にそんなものはありません。処理系がやってくれているからできることであり、自分で実装するとなるとどれほどの労力がかかることやら…という感じです。 しかし、この問題を解決するのがUTF-8 というエンコード
1リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く