JavaScript Object Notation(JSON)は、ウェブにおける標準的なデータ交換フォーマットとなっている。JSONはWebアプリケーションのデータ転送に広く使われているが、その主な理由は、人間にも機械にも簡単に作成・理解できるからだ。しかし、データサイエンティストがよく使う言語であるPythonでこの形式を扱うにはどうすればいいのでしょうか?この包括的なチュートリアルでは、PythonでJSONデータを読み取り、解析する方法を学びます。
JSONを理解する
JSONは、完全に言語に依存しないテキストフォーマットだが、C、C++、C#、Java、JavaScript、Perl、Pythonなど、C言語ファミリーのプログラマーにはおなじみの規約を使用している。数値、文字列、順序付けられた一連の値(配列)、名前と値のペアのコレクション(オブジェクト)を表すことができる。
JSONとXMLの比較
JSONが普及する前は、XML(eXtensible Markup Language)がデータの保存と転送に主に使用されていた。XMLとは異なり、JSONはデータ交換のために、よりシンプルで人間が読みやすい構文を提供しています。主な違いは以下のとおりです:
JSON | XML |
---|---|
読むのも書くのも簡単だ。 | 読み書きはそれほど簡単ではない。 |
解析は速い。 | 解析が遅い。 |
データはJSONオブジェクトとしてすぐにアクセスできる。 | オブジェクトとして使用するためには、データを解凍する必要がある。 |
アレイ対応。 | アレイのサポートはない。 |
冗長さが減った。 | もっと冗長に。 |
PythonとJSON
Pythonにはjsonという組み込みパッケージがあり、これを使うとJSONデータを扱うことができる。JSON文字列があれば、それをパースするには json.loads() メソッドを使用します。同様に、Pythonオブジェクトがある場合、それをJSON文字列に変換するには json.dumps() メソッドを使用する。
PythonでJSONデータを読む
Pythonの組み込みの json モジュールは、JSONファイルを読み書きする機能を提供する。このモジュールでは json.load() メソッドで、JSONオブジェクトを含むファイルを読み込むことができます。
import json
with open('sample.json', 'r') as f:
data = json.load(f)
このコードでファイルを開く sample.jsonファイル内のJSONオブジェクトはPython辞書にデシリアライズされ、変数 データ.
PythonでJSONデータを解析する
PythonのjsonモジュールはJSONデータのパースを簡単にします。
import json
json_string = '{"name": "John", "age": 30, "city": "New York"}'
python_dict = json.loads(json_string)
この例では json.loads() 入力として文字列を受け取り、出力として辞書を返す。
PythonでJSONデータを書く
PythonオブジェクトをJSONファイルに書き出すには、次のようにします。 json.dump().
import json
data = {
"name": "John",
"age": 30,
"city": "New York"
}
with open('output.json', 'w') as json_file:
json.dump(data, json_file)
この例では、Python辞書を 出力.json.
PythonオブジェクトをJSONに変換する
Pythonのjsonモジュールは関数 json.dumps() を使って Python オブジェクトを JSON フォーマットに変換します。この処理はシリアライズと呼ばれます。
import json
data = {
"name": "John",
"age": 30,
"city": "New York"
}
json_data = json.dumps(data)
ここでは、Python辞書 データ を使ってJSON形式の文字列にシリアライズされる。 json.dumps().
JSONとPythonの実例
JSONは、クライアントからサーバーにデータを送信するために、ウェブ開発で広く使用されています。これは、Pythonスクリプトを使用して、JSON形式でWebサーバーにデータを送信する方法の基本的な例です。
import json
import requests
data = {
"name": "John",
"age": 30,
"city": "New York"
}
headers = {"Content-Type": "application/json"}
response = requests.post("http://httpbin.org/post", headers=headers, data=json.dumps(data))
print(response.json())
以上、Pythonを使ったJSONデータの読み込みと解析についてでした。JSONデータ構造を理解し、Pythonを使ってそれを操作する方法は、現代のWebの世界では重要なスキルであることを覚えておいてください。JSONデータの扱いに慣れるために、このチュートリアルで説明した概念を必ず練習してください。それでは、よい学習を!
コメント (0)
まだコメントはありません。あなたが最初のコメントを投稿できます!