タグ

csvに関するmas-higaのブックマーク (8)

  • Ruby のバージョンを 3.1 系から 3.2 系にアップデートしたら Ruby on Rails アプリの動きが変わったのを解決した話 - DIGGLE開発者ブログ

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

    Ruby のバージョンを 3.1 系から 3.2 系にアップデートしたら Ruby on Rails アプリの動きが変わったのを解決した話 - DIGGLE開発者ブログ
    mas-higa
    mas-higa 2023/08/01
    "Puma を使っているうちは問題ありませんので今回はよしとします"
  • アルゴリズムの基本をJava、C#、Pythonで学ぼう - データを集計し、言語ごとの違いを知る - エンジニアHub|Webエンジニアのキャリアを考える!

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

    アルゴリズムの基本をJava、C#、Pythonで学ぼう - データを集計し、言語ごとの違いを知る - エンジニアHub|Webエンジニアのキャリアを考える!
    mas-higa
    mas-higa 2020/02/28
    "自分でアルゴリズムを考えるのは非効率と思えるほどです" CSV の処理はライブラリ使おう。kenall を相手にしてるんじゃないんだから。CSV ナメると痛い目にあう。
  • Google スプレッドシート(共有)を CSV や TSV 形式でコマンドライン(curl)からゲット

    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

    Google スプレッドシート(共有)を CSV や TSV 形式でコマンドライン(curl)からゲット
    mas-higa
    mas-higa 2018/02/21
    なるほど便利
  • trdsqlというコマンドラインツールを作った - Qiita

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

    trdsqlというコマンドラインツールを作った - Qiita
  • 「ちょっとExcelで解析したいからデータ出して」と言われた時のためのArray#to_tsv - Qiita

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

    「ちょっとExcelで解析したいからデータ出して」と言われた時のためのArray#to_tsv - Qiita
    mas-higa
    mas-higa 2014/12/04
    データに tab が混ってるときはどうすればいいんでしょうね
  • それでも独自のCSVを書くつもりですか? | POSTD

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

    それでも独自のCSVを書くつもりですか? | POSTD
    mas-higa
    mas-higa 2014/11/13
    これをチェックシートにすればいいんですね。わかります。
  • 郵便番号データの落とし穴

    概要 MS-Access 上で郵便番号を住所変換するためには、住所入力支援機能が提供されている。 しかし、元になっている辞書ファイルのアップデートが遅れたり、用途に応じてカスタマイズするには限界があるなどの理由から、日郵政公社が配布している郵便番号データを利用して、オリジナルの郵便番号⇒住所変換機能を実装する方法も、広く知られている。 日郵政公社(執筆当時。現・郵便事業株式会社)が配布している郵便番号データは単純な CSV 形式のため、加工がしやすく、初・中級クラスの VBA の知識があれば簡単に応用が効く、というのが、私が見聞きした範囲での一般的な認知のようだ。 しかし最近になって、ふとしたことから実際にその CSV データを見る機会が有り、いくつかの疑問点・問題点が浮かび上がってきた。 はたして日郵政公社の CSV データは、当に使いやすいのだろうか? 仕様 まず、仕様を確認し

    mas-higa
    mas-higa 2012/08/10
    "マイナーになりつつある文字コードセット" と言う本人がそのコードセット使ってるんじゃ説得力ない。
  • Ruby 1.8 と 1.9 の両方で動作する簡易 CSV 形式データ処理を考える。 - 自分の歩いた道に落ちてるコード

    この違いはとても大きいです。Ruby 1.9 では日語の1文字を1文字として扱いますが、Ruby 1.8 ではそうはいきません。 Ruby 1.8 では同じ日語でも、それを構成しているバイトコードの中身まで見えてしまうのです。 同じ日語でもエンコードの方法によっては違うバイトコードの並びになります。 その中には今回区切り文字や囲み文字として採用したカンマ(,)やダブルクオーテーション(")に該当してしまうものが存在するかもしれません。 かといって、Ruby 1.8 でエンコードを意識して文字単位で処理をするのはとても難しいような気がします。 少なくとも、僕が持っている文字コードの知識にそんなものはありません。処理系がやってくれているからできることであり、自分で実装するとなるとどれほどの労力がかかることやら…という感じです。 しかし、この問題を解決するのが UTF-8 というエンコード

    Ruby 1.8 と 1.9 の両方で動作する簡易 CSV 形式データ処理を考える。 - 自分の歩いた道に落ちてるコード
  • 1