こんにちはフロントエンドエンジニアのまさにょんです!
今回は、PythonでCSVをJSONに変換する方法について解説します。
PythonでCSVをJSONに変換する方法
今回は、次のようなSample CSV を JSONに変換する方法をご紹介します。
id,participant,affiliation
1,"ロボたま","エンジニア"
2,"まりたま","エンジニア"
3,"白桃","営業部"
4,"ももちゃん","営業部"
5,"まさぴょん","営業部"
6,"まりぴょん","デザイナー"
7,"ハム太郎","エンジニア"
8,"ロボ太郎","デザイナー"
9,"まり太郎","デザイナー"
10,"ぷる玉","人事部"
11,"ぷるぷる玉","人事部"
12,"ロボ玉試作1号機","エンジニア"
13,"ロボ玉試作2号機","デザイナー"
14,"ロボ玉試作1号機","ロボ玉開発部"
PythonでCSVをJSONに変換する SampleCode
PythonでCSVを指定の行数まで切り取る方法のポイントをまとめると、次のとおりです。
- CSVファイルを読み込んでJSONに変換する
json.dumps()
でJSONに変換する際にensure_ascii=False
を指定する- 日本語をエンコーディング( Unicodeエスケープ )せず、そのまま表示させるための設定
- JSONデータをファイルに保存する
import os
import csv
import json
csv_file = 'robotama.csv'
csv_file_path = f'{os.getcwd()}/{csv_file}'
# CSVファイルを読み込んでJSONに変換する
with open(csv_file_path, 'r') as csv_file:
csv_data = csv.DictReader(csv_file)
json_data = json.dumps([row for row in csv_data], ensure_ascii=False) # ensure_ascii=False は、日本語をそのまま表示させるため。
# JSONデータをファイルに保存する
with open('robotama.json', 'w') as json_file:
json_file.write(json_data)
加工処理の結果: robotama.json
CSVをJSONに変換する加工処理の結果 ( robotama.json )の中身は、次のようになりました。
[
{
"id": "1",
"participant": "ロボたま",
"affiliation": "エンジニア"
},
{
"id": "2",
"participant": "まりたま",
"affiliation": "エンジニア"
},
{
"id": "3",
"participant": "白桃",
"affiliation": "営業部"
},
{
"id": "4",
"participant": "ももちゃん",
"affiliation": "営業部"
},
{
"id": "5",
"participant": "まさぴょん",
"affiliation": "営業部"
},
{
"id": "6",
"participant": "まりぴょん",
"affiliation": "デザイナー"
},
{
"id": "7",
"participant": "ハム太郎",
"affiliation": "エンジニア"
},
{
"id": "8",
"participant": "ロボ太郎",
"affiliation": "デザイナー"
},
{
"id": "9",
"participant": "まり太郎",
"affiliation": "デザイナー"
},
{
"id": "10",
"participant": "ぷる玉",
"affiliation": "人事部"
},
{
"id": "11",
"participant": "ぷるぷる玉",
"affiliation": "人事部"
},
{
"id": "12",
"participant": "ロボ玉試作1号機",
"affiliation": "エンジニア"
},
{
"id": "13",
"participant": "ロボ玉試作2号機",
"affiliation": "デザイナー"
},
{
"id": "14",
"participant": "ロボ玉試作1号機",
"affiliation": "ロボ玉開発部"
}
]
Twitterやってます!Follow Me!
神聖グンマー帝国の逆襲🔥
神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!