今回は、簡単なPythonスクリプトを使って、CSVをJSONに変換してみましょう。
PythonのJSON(JavaScript Object Notation)ライブラリの使い方を学び、この変換の背後にある論理を理解しようとします。
なぜCSVをJSONに変換したいのですか?
JSONは、JavaScriptのオブジェクト構文に基づいた、構造化されたデータを表現するための標準的なテキストベースのフォーマットです。
ウェブアプリケーションでデータを送信するために一般的に使用されます。
したがって、サーバーからクライアントに何らかのデータを送信する必要がある場合は、まずデータをJSONに変換してからクライアントに送信し、ウェブページに表示できるようにするか、またはその逆にします。
CSVからJSONへの変換手順
我々は、徹底的にかつ簡単に問題を理解するように、様々な小さなステップで彼の問題にアプローチします。
ステップ1:CSVファイルとJSONファイルのパスを入力する
これは、入力関数を使って実現することができます。
入力関数は、デフォルトでは文字列の形で入力を受け付けます。
Input関数は、入力を求めながら文字列を表示するために使用することもできます。
ステップ2:ファイルハンドラを使用してCSVファイルを開く
ファイルハンドラを起動する方法はたくさんあるが、ここでは最も安全な方法、すなわち
with open (csv_file_path, encoding = 'utf-8' ) as csv_file_handler:
|
これは、ファイルを読み込みモードで開き、このブロックから出るとすぐにこのファイルを自動的に閉じます。
使用後にファイルを閉じることは、ファイルの破損やデータ損失の可能性を防ぐために非常に重要です。
ステップ3:JSONファイルハンドラを使用してJSONファイルを開く
このファイルは書き込みモードで開かれるので、コードは次のようになります。
with open (json_file_path, 'w' , encoding = 'utf-8' ) as json_file_handler:
|
ここで、「+w」は、ファイルが書き込みモードで開かれていること、すなわち、そのデータが変更可能であることを表しています。
ステップ4:JSONモジュールの関数を使用して、ファイルをJSONファイルにパースする
このタスクは、次のコードを使用することで簡単に実行できます。
json_file_handler.write(json.dumps(data_dict, indent = 4 ))
|
これで準備は完了です。
あとはこのコードを実行すれば、作業は終了です。
PythonでCSVからJSONに変換する完全なコード
import csv
import json
def csv_to_json(csv_file_path, json_file_path):
#create a dictionary
data_dict = {}
#Step 2
#open a csv file handler
with open (csv_file_path, encoding = 'utf-8' ) as csv_file_handler:
csv_reader = csv.DictReader(csv_file_handler)
#convert each row into a dictionary
#and add the converted data to the data_variable
for rows in csv_reader:
#assuming a column named 'No'
#to be the primary key
key = rows[ 'Serial Number' ]
data_dict[key] = rows
#open a json file handler and use json.dumps
#method to dump the data
#Step 3
with open (json_file_path, 'w' , encoding = 'utf-8' ) as json_file_handler:
#Step 4
json_file_handler.write(json.dumps(data_dict, indent = 4 ))
#driver code #be careful while providing the path of the csv file #provide the file path relative to your machine #Step 1 csv_file_path = input ( 'Enter the absolute path of the CSV file: ' )
json_file_path = input ( 'Enter the absolute path of the JSON file: ' )
csv_to_json(csv_file_path, json_file_path) |
コードの実行
$ python3 "python script name without quotes" |
スクリプトを実行するためのコマンド
出力ファイル
まとめ
今回は、CSVからJSONへの変換を行うPythonスクリプトの実装方法について学びました。
また、Pythonの’json’と’csv’モジュールとその共通関数について学びました。