データの形式変換とは
データ形式変換について
データ形式変換とは、ある形式のデータを別の形式に変換することです。例えば、CSV形式からテーブル形式に変換することで、データの扱いやすさを向上させることができます。また、JSON形式から配列形式に変換することで、プログラムで扱いやすくなります。
CSV形式は、カンマ区切りのテキスト形式で、データを表形式に表現することができます。一方、JSON形式は、データをキーと値のペアで表現する形式です。データ形式変換を行うことで、データの形式に合わせた処理がしやすくなります。
また、配列形式に変換することで、データをリスト形式で扱うことができます。配列は、複数の値を一つの変数にまとめて扱うことができるため、プログラムでの処理が簡単になります。
データ形式変換は、データの移行や解析に欠かせない重要な処理です。データ形式に応じたライブラリやツールが豊富にあり、簡単に変換できるようになっています。ただし、変換の過程でデータの損失や誤りが生じる場合があるため、適切な方法を選択する必要があります。
データ形式変換が必要なケース
通常の言語では、変換処理が用意されていることが多いです。例えば、Pythonで配列をJSONに変換するには、標準ライブラリのjson
モジュールを使用します。プログラムで読み込むことができれば、基本的にはプログラムで変換可能なケースが多いですが、変数定義時に、テーブルのデータをjsonで変数定義したいというケースがあった場合にコードで記述をするのはひと手間かかります。これをAI (chat GPT) を使って楽に変換後のコードを手に入れましょう。
データの形式変換方法
サンプルデータとして、chat GPTに以下都道府県コード、都道府県漢字、都道府県ローマ字のテーブルデータを出力してもらいます。
すべての都道府県のコード、漢字、ローマ字をテーブルで出力してください
上記をコマンドするとテーブルを出力していただきました。
都道府県コード | 都道府県漢字 | 都道府県ローマ字 |
---|---|---|
01 | 北海道 | Hokkaido |
02 | 青森県 | Aomori |
03 | 岩手県 | Iwate |
04 | 宮城県 | Miyagi |
05 | 秋田県 | Akita |
06 | 山形県 | Yamagata |
07 | 福島県 | Fukushima |
08 | 茨城県 | Ibaraki |
09 | 栃木県 | Tochigi |
10 | 群馬県 | Gunma |
11 | 埼玉県 | Saitama |
12 | 千葉県 | Chiba |
13 | 東京都 | Tokyo |
14 | 神奈川県 | Kanagawa |
15 | 新潟県 | Niigata |
16 | 富山県 | Toyama |
17 | 石川県 | Ishikawa |
18 | 福井県 | Fukui |
19 | 山梨県 | Yamanashi |
20 | 長野県 | Nagano |
21 | 岐阜県 | Gifu |
22 | 静岡県 | Shizuoka |
23 | 愛知県 | Aichi |
24 | 三重県 | Mie |
25 | 滋賀県 | Shiga |
26 | 京都府 | Kyoto |
27 | 大阪府 | Osaka |
28 | 兵庫県 | Hyogo |
29 | 奈良県 | Nara |
30 | 和歌山県 | Wakayama |
31 | 鳥取県 | Tottori |
32 | 島根県 | Shimane |
33 | 岡山県 | Okayama |
34 | 広島県 | Hiroshima |
35 | 山口県 | Yamaguchi |
36 | 徳島県 | Tokushima |
37 | 香川県 | Kagawa |
38 | 愛媛県 | Ehime |
39 | 高知県 | Kochi |
40 | 福岡県 | Fukuoka |
41 | 佐賀県 | Saga |
42 | 長崎県 | Nagasaki |
43 | 熊本県 | Kumamoto |
44 | 大分県 | Oita |
45 | 宮崎県 | Miyazaki |
46 | 鹿児島県 | Kagoshima |
47 | 沖縄県 | Okinawa |
テーブルから他形式(CSV、JSON、配列)への変換
では、CSVとして出力してもらいます。以下コマンドします。
テーブルをCSVデータとして出力してください
カンマ区切りのCSVデータで出力してもらえました、区切り文字を具体で指定するとその通りに出力してくれます。
都道府県コード,都道府県漢字,都道府県ローマ字
01,北海道,Hokkaido
02,青森県,Aomori
03,岩手県,Iwate
04,宮城県,Miyagi
05,秋田県,Akita
06,山形県,Yamagata
07,福島県,Fukushima
08,茨城県,Ibaraki
09,栃木県,Tochigi
10,群馬県,Gunma
11,埼玉県,Saitama
12,千葉県,Chiba
13,東京都,Tokyo
14,神奈川県,Kanagawa
15,新潟県,Niigata
16,富山県,Toyama
17,石川県,Ishikawa
18,福井県,Fukui
19,山梨県,Yamanashi
20,長野県,Nagano
21,岐阜県,Gifu
22,静岡県,Shizuoka
23,愛知県,Aichi
24,三重県,Mie
25,滋賀県,Shiga
26,京都府,Kyoto
27,大阪府,Osaka
28,兵庫県,Hyogo
29,奈良県,Nara
30,和歌山県,Wakayama
31,鳥取県,Tottori
32,島根県,Shimane
33,岡山県,Okayama
34,広島県,Hiroshima
35,山口県,Yamaguchi
36,徳島県,Tokushima
37,香川県,Kagawa
38,愛媛県,Ehime
39,高知県,Kochi
40,福岡県,Fukuoka
41,佐賀県,Saga
42,長崎県,Nagasaki
43,熊本県,Kumamoto
44,大分県,Oita
45,宮崎県,Miyazaki
46,鹿児島県,Kagoshima
47,沖縄県,Okinawa
つづいて、JSON形式で出力してもらいます。
上記テーブルの都道府県コードをkeyとして漢字とローマ字のペアでjson形式で出力してください。
{
"01": {
"kanji": "北海道",
"romaji": "Hokkaido"
},
"02": {
"kanji": "青森県",
"romaji": "Aomori"
},
"03": {
"kanji": "岩手県",
"romaji": "Iwate"
},
"04": {
"kanji": "宮城県",
"romaji": "Miyagi"
},
"05": {
"kanji": "秋田県",
"romaji": "Akita"
},
"06": {
"kanji": "山形県",
"romaji": "Yamagata"
},
"07": {
"kanji": "福島県",
"romaji": "Fukushima"
},
"08": {
"kanji": "茨城県",
"romaji": "Ibaraki"
},
"09": {
"kanji": "栃木県",
"romaji": "Tochigi"
},
"10": {
"kanji": "群馬県",
"romaji": "Gunma"
},
"11": {
"kanji": "埼玉県",
"romaji": "Saitama"
},
"12": {
"kanji": "千葉県",
"romaji": "Chiba"
},
"13": {
"kanji": "東京都",
"romaji": "Tokyo"
},
"14": {
"kanji": "神奈川県",
"romaji": "Kanagawa"
},
"15": {
"kanji": "新潟県",
"romaji": "Niigata"
},
"16": {
"kanji": "富山県",
"romaji": "Toyama"
},
"17": {
"kanji": "石川県",
"romaji": "Ishikawa"
},
"18": {
"kanji": "福井県",
"romaji": "Fukui"
},
"19": {
"kanji": "山梨県",
"romaji": "Yamanashi"
},
"20": {
"kanji": "長野県",
"romaji": "Nagano"
},
"21": {
"kanji": "岐阜県",
"romaji": "Gifu"
},
"22": {
"kanji": "静岡県",
"romaji": "Shizuoka"
},
"23": {
"kanji": "愛知県",
"romaji": "Aichi"
},
"24": {
"kanji": "三重県",
"romaji": "Mie"
},
"25": {
"kanji": "滋賀県",
"romaji": "Shiga"
},
"26": {
"kanji": "京都府",
"Kyoto": "Kyoto"
},
"27": {
"kanji": "大阪府",
"romaji": "Osaka"
},
"28": {
"kanji": "兵庫県",
"romaji": "Hyogo"
},
"29": {
"kanji": "奈良県",
"romaji": "Nara"
},
"30": {
"kanji": "和歌山県",
"romaji": "Wakayama"
},
"31": {
"kanji": "鳥取県",
"romaji": "Tottori"
},
"32": {
"kanji": "島根県",
"romaji": "Shimane"
},
"33": {
"kanji": "岡山県",
"romaji": "Okayama"
},
"34": {
"kanji": "広島県",
"romaji": "Hiroshima"
},
"35": {
"kanji": "山口県",
"romaji": "Yamaguchi"
},
"36": {
"kanji": "徳島県",
"romaji": "Tokushima"
},
"37": {
"kanji": "香川県",
"romaji": "Kagawa"
},
"38": {
"kanji": "愛媛県",
"romaji": "Ehime"
},
"39": {
"kanji": "高知県",
"romaji": "Kochi"
},
"40": {
"kanji": "福岡県",
"romaji": "Fukuoka"
},
"41": {
"kanji": "佐賀県",
"romaji": "Saga"
},
"42": {
"kanji": "長崎県",
"romaji": "Nagasaki"
},
"43": {
"kanji": "熊本県",
"romaji": "Kumamoto"
},
"44": {
"kanji": "大分県",
"romaji": "Oita"
},
"45": {
"kanji": "宮崎県",
"romaji": "Miyazaki"
},
"46": {
"kanji": "鹿児島県",
"romaji": "Kagoshima"
},
"47": {
"kanji": "沖縄県",
"romaji": "Okinawa"
}
途中で出力が切れてしまいましたが、「続きを出力してください」等のコマンドを打てば続きを出してくれます。(上記は続き分も入れています)
続いて、配列を出力してもらいます。今回は各都道府県単位を一つにまとめた2次元の配列として出力してもらいます。
上記テーブルを都道府県毎にまとめた2次元配列で出力してください
言語指定はしていないですが、Pythonで出力してくれました。
data = [
["01", "北海道", "Hokkaido"],
["02", "青森県", "Aomori"],
["03", "岩手県", "Iwate"],
["04", "宮城県", "Miyagi"],
["05", "秋田県", "Akita"],
["06", "山形県", "Yamagata"],
["07", "福島県", "Fukushima"],
["08", "茨城県", "Ibaraki"],
["09", "栃木県", "Tochigi"],
["10", "群馬県", "Gunma"],
["11", "埼玉県", "Saitama"],
["12", "千葉県", "Chiba"],
["13", "東京都", "Tokyo"],
["14", "神奈川県", "Kanagawa"],
["15", "新潟県", "Niigata"],
["16", "富山県", "Toyama"],
["17", "石川県", "Ishikawa"],
["18", "福井県", "Fukui"],
["19", "山梨県", "Yamanashi"],
["20", "長野県", "Nagano"],
["21", "岐阜県", "Gifu"],
["22", "静岡県", "Shizuoka"],
["23", "愛知県", "Aichi"],
["24", "三重県", "Mie"],
["25", "滋賀県", "Shiga"],
["26", "京都府", "Kyoto"],
["27", "大阪府", "Osaka"],
["28", "兵庫県", "Hyogo"],
["29", "奈良県", "Nara"],
["30", "和歌山県", "Wakayama"],
["31", "鳥取県", "Tottori"],
["32", "島根県", "Shimane"],
["33", "岡山県", "Okayama"],
["34", "広島県", "Hiroshima"],
["35", "山口県", "Yamaguchi"],
["36", "徳島県", "Tokushima"],
["37", "香川県", "Kagawa"],
["38", "愛媛県", "Ehime"],
["39", "高知県", "Kochi"],
["40", "福岡県", "Fukuoka"],
["41", "佐賀県", "Saga"],
["42", "長崎県", "Nagasaki"],
["43", "熊本県", "Kumamoto"],
["44", "大分県", "Oita"],
["45", "宮崎県", "Miyazaki"],
["46", "鹿児島県", "Kagoshima"],
["47", "沖縄県", "Okinawa"]
]
出力結果が途中で途切れるケースが少し煩わしいので、本やり方の場合は大きいデータには向かないですね。(chat GPTを使ったサービス等で制限なく出力可能なものもありそうです)
ChatGPTは1回の応答で最大2048文字までのテキストを出力することができますが、出力されるデータ量については、文字数だけでなく、テキストの形式や内容によっても異なるようです。
すべての都道府県のコード、漢字、ローマ字をテーブルで出力してください
他形式から別形式への変換
基本的にはAIに指示するだけでうまく変換してくれるので、説明を省略します。
まとめ
データのフォーマット変換のような構造化されたデータの識別・処理能力は非常に高いですね。実務等で軽めのデータを素早く変換するならchatGPTは非常に有用です。
コメント