0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【DataSpider】ダブルクオーテーション「"」って難しい

0
Last updated at Posted at 2026-07-29

はじめに

あるところに、デリミタ文字tab、文字列に「"」(ダブルクォーテーション)を含むtsvファイルがありました。

DataSpiderのCSVファイル読み込みコンポーネントには下記の仕様制限がありました。
image.png

つまり、「"」(ダブルクォーテーション)を含むCSVファイルは読み取るの?読み取れないの?

「ダブルクォーテーションを含むtsvファイルをCSVアダプタで読み込み、PostgreSQLに書き込む」検証してみました。

検証概要

検証パターン

※表にはデリミタ文字はスペースで表していますが実際はtabです。

No 読み込みデータ サンプルファイル
He says I'm" fi"ne sample1.tsv
He says "I'm fine" sample2.tsv
"He says "I'm fine"" sample3.tsv
"He says ""I'm fine""" sample4.tsv

表にはデリミタ文字はスペースで表していますが実際はtabです。

検証スクリプト

CSV読み取りと可変長読み取りの2つのアダプターで検証します。
どちらもファイルを読み取ってPostgreSQLに書き込みシンプルなスクリプト

CSV読み取り設定

image.png

image.png

可変長読み取り設定

image.png

image.png

image.png

PostgreSQLテーブル書き込み設定

image.png

検証パターン①:He says I'm" fi"ne

元データ

image.png

CSVアダプタ利用時PostgreSQL書き込み結果

image.png

可変長アダプタ利用時PostgreSQL書き込み結果

結果はCSVアダプタ利用時と同じ。
image.png

検証パターン②:He says "I'm fine"

元データ

image.png

CSVアダプタ利用時PostgreSQL書き込み結果

image.png

可変長アダプタ利用時PostgreSQL書き込み結果

image.png

検証パターン③:"He Says "I'm fine""

元データ

image.png

CSVアダプタ利用時PostgreSQL書き込み結果

image.png

可変長アダプタ利用時PostgreSQL書き込み結果

image.png

検証パターン④:"He Says ""I'm fine"""

元データ

image.png

CSVアダプタ利用時PostgreSQL書き込み結果

image.png

可変長アダプタ利用時PostgreSQL書き込み結果

image.png

検証結果まとめ

データの区切りを分かりやすくするため、[]でくくっています。

No 読み込みデータ CSV読み込み 可変長読み込み
He says I'm" fi"ne [He][says][I'm"][fi"ne] [He][says][I'm"][fi"ne]
He says "I'm fine" [He][says][I'm fine][] [He][says]["I'm][fine"]
"He says "I'm fine"" [He says I'm][fine""][][] ["He][says]["I'm][fine""]
"He says ""I'm fine""" [He says "I'm fine"][][][] ["He][says][""I'm][fine"""]

終わりに

ダブルクオーテーションの厄介さを再認識しました。
データのクレンジングって大事です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?