PythonでJSONを解析する - 3つの簡単なステップ

ガイド, ハウツー, パイソン, 8月 -2620225分で読める

Pythonを使ったJSONデータの解析は、その軽量な品質でデータ変換を容易にする。International Data Corporationは、2022年までにビッグデータとビジネス産業が2018年から62%増加すると予測している。データ共有はデジタルの世界ではごく一般的なことであり、人々はメイン・サーバーから大量のデータを

Pythonを使ったJSONデータの解析は、その軽量な品質でデータ変換を容易にする。International Data Corporationは、2022年までにビッグデータとビジネス産業が2018年から62%増加すると予測している。データ共有はデジタルの世界ではごく一般的なことであるため、人々はメインサーバーからクライアントアプリケーションへ、あるいはあるサーバーから他のデータベースへ、大量のデータを送信することを意図している。人々は、JSONのようなデータ交換ファイルフォーマットに大きく依存して、データをユーザー読み取り可能なフォーマットに変換する相手側のデバイスにデータを送信する。この記事では、JSONとは何か、PythonでJSONを解析する方法、そしてその理由を探ります。

目次

なぜPythonでJSONを解析するのか?

JSONは軽量なフォーマットであるため、時間とスピードの面で変換が容易になる。これが、データ実務者がJSONフォーマットでのメッセージ送受信を好む理由である。しかし、変換されたデータがさらに操作を必要とする場合、ユーザーはそれを機械が理解できる言語に変換しなければならない。そのため、人々はパイソンでJSONを解析する。ここでは、Python言語を使っている。そのため、データにアクセスするためにPythonのライブラリや関数を使用してJSONを読み取り、解析する必要があります。

データ解析の重要性を知るには、この記事「データ解析とそのメリット」をご覧ください。

JSONとは何か?

Javascript Object Notation (JSON)は、サーバーからウェブアプリケーションへ、ユーザーが読める形式で情報を送信する軽量データフォーマットである。JSON形式はJavaScriptの派生形式ですが、オブジェクトを表現するためにテキスト形式を使用します。機械はPythonでJSONを解析し、JSONデータを機械可読形式に変換することができます。

サンプルJSONデータ

{
   "person": [
 
      {
         "name": "John",
         "age": "26",
         "languages": ["C", “Python”]
      },
 
      {
         “name": “Nitin",
         "age": "24",
         "languages": ["Java", “Python”]
      }
   ]
}

これがサンプルのJSON文字列である。中括弧内の内容はオブジェクトで、角括弧内のデータは配列です。 

PythonでJSONを解析する方法

The JSON string {“name”: “John”, “age”: “26”, “languages”: [“C”, “Python”]} is similar to the dictionaries in Python. Just like dictionaries, JSON also has keys and values. Here the keys and value pairs are separated with a colon. The ‘name,’ ‘age,’ and ‘languages’ are the keys, and the data after the colon are the values of the respective keys. JSON can be accessed in Python using the JSON library that holds all the functions to convert the JSON strings into Python dictionaries and vice versa. 

Pythonは、Pythonコード内でJSONライブラリをインポートすることで、JSONデータにアクセスすることができる。PythonのJSONモジュールを使用すると、JSONデータの読み取り、書き込み、解析、その他の操作を実行できます。

 インポート json

JSONデータをPythonオブジェクトにパースする

JSONデータには、文字列、配列、オブジェクト、数値、ファイルなど、さまざまなタイプがある。 

PythonによるJSONの解析 - Pythonの等価オブジェクト

JSONデータを受け取った後、主要なタスクはJSONデータをPythonデータ型に変換することです。この表は、JSONデータタイプのリストと、それに相当するPythonフォーマットを示しています。

JSONデータ型Pythonのデータ型
オブジェクト独裁者
配列リスト、タプル
ストリングスト
番号int, float
真の
擬似
なし

Steps to Parse different JSON Data into Python

ここでは、特定のJSONデータを同等のPythonフォーマットにパースする方法を学びます。 

JSON文字列をPython辞書へJSON配列をPythonリストへJSONファイルをPythonオブジェクトへ。 

PythonでJSONを解析する - 文字列を辞書に変換する

JSON文字列のサンプルを考えてみよう。

{
  "name": "John", 
  "age": "26"
 }

文字列を変数に代入し、その変数を関数に渡すことで、パース処理を容易にすることができる。 例 : print(person)

person ='{"name": "John", "age": "26"}'

print(person)ステートメントは文字列を表示する。 

person ='{"name": "John", "age": "26"}'
print(person)

出力 

{“name”: “John”, “age”: “26”}

type()関数に変数を渡すと、データが文字列であることが保証される。

person ='{"name": "John", "age": "26"}'
 print(person)
 print(type(person))

出力 

{“name”: “John”, “age”: “26”}

<class ‘str’>

文字列を辞書に変換する

最初のステップは、文字列形式のJSONデータをPythonに適した形式にパースすることです。先に説明したように、JSON文字列とPython辞書は、どちらもキーと値のペア構造であるため、よく似ています。PythonでJSONデータを読み、パースするために、まずJSONライブラリをインポートしましょう。loads()関数はJSON文字列をPython辞書にパースするために使用されます。loads() 関数の 's' は文字列を表します。

インポート json
json.loads(STRNAME)

上のサンプルで出力したJSON文字列のサンプルを見てみよう。 

person ='{"name": "John", "age": "26"}'
 print(person)

json.loads()関数を使用して文字列をpython辞書に変換します。json.loads() の 'json' はライブラリ名を表します。 

json.loads(人)

load()文を新しい変数に代入することも必要である。ここでは、'person_dxnry' 変数を使用した。 

person_dxnry= json.loads(人)pyt

文字列を辞書に変換して新しい変数に代入した後、type()関数を使えば、変換前と変換後のデータの型を見ることができる。

print(type(person))
print(type(person_dxnry))
import json
 person ='{"name": "John", "age": "26"}'
 print(person)
 print(type(person))
 person_dxnry = json.loads(person)
 print(person_dxnry)
 print(type(person_dxnry))

出力:

{“name”: “John”, “age”: “26”}

<class ‘str’>

{‘name’: ‘John’, ‘age’: ’26’}

<class ‘dict’>

ここで、type()関数は、型が初期状態では文字列であり、変換後は辞書になることを示している。 

PythonでJSONを解析する - 配列をリストに変換する

配列を持つサンプルJSONコードを使って、別のJSONデータ型をPython構造体に変換してみましょう。

{
         "name": "John",
         "age": "26",
         "languages": ["C", “Python”]
      }

この配列を'languages'変数に代入して、loads()関数に渡すことができる。次に、新しい変数 'language_list' を作成して、 loads() 関数の結果を代入します。

languages='["C", "Python"]'
languages_list= json.loads(languages)
インポートjsonpyt
 languages = '["C", "Python"]'
 languages_list = json.loads(languages)
 print(languages_list)
 print(type(languages_list))

両方の変数にtype()関数を使うことで、データ型を確認することができる。

出力

[C'、'Python']。

<class ‘list’>

この出力は、'languages'のJSON配列がloads()関数によってリストに変換されていることを示している。

PythonでJSONを解析する - ファイルからオブジェクトへ

最も一般的なJSON形式は文字列である。また、JSON形式のデータをファイルとして受け取る可能性も高い。データ型が何であれ、最終的な目的はそれらをpythonで読める形式にパースすることです。load() や loads() のような2つの関数がパースに使えます。これらのJSONパース関数は、JSONデータ型によって異なります。これらの関数については、次のセクションで簡単に説明します。

Pythonの組み込みJSONライブラリは、PythonでJSONファイルを読み込んでパースするための別の変換関数'load()'を提供する。 

JSONファイルの読み方と解析方法

Python Parse JSON - 3つの方法。

最初のステップは、このサンプルコードを「person.json」という名前で保存することだ。

{
         "name": "John",
         "age": "26",
      }

JSONファイルをパースする関数は2つある。1つはopen()関数です。open()メソッドは、JSONファイルを開き、load()オペレーションを使用して変換処理を行うようにコンパイラに指示します。 

with open('person.json')as file:pyt

JSONファイルを開いたら、ロード操作を代入するための変数「data」を作成しなければならない。

data= json.load(ファイル)

最後に、type()関数を使ってコンテンツのタイプをチェックすることができる。

print(type(data))

変換された辞書の要素には、「data」変数を使い、「name」や「age」といった辞書のキーを渡すことでアクセスできる。

print(data['age'])
print(データ['名前'])
インポートjson
withopen('person.json')asfile:
data= json.load(ファイル)
print(type(data))
print(data['age'])
print(data['name'])

出力:

<class ‘dict’>

26

ジョン

タイプは「辞書」であると出力されている。この出力は、JSONファイルをリストに変換することに成功したことを意味する。

PythonからJSONへの書き込み

PythonのデータフォームをJSONに変換するには、dumps()関数とdump()関数を使います。これらは load() と loads() 関数の逆の処理です。Python辞書をdump()関数を使ってJSON文字列に変換してみましょう。 

 Python辞書を'person_dictionary'として定義しました。 

person_dictionary = {'name': 'John', 'age': 26 }

dumps() 関数を使用して変換処理を行い、それを新しい変数 'person_json' に代入する。

person_json=json.dumps(person_dictionary)。
print(person_json)
import json
person_dictionary = {'name': 'John',
 'age': 26
 }
 person_json = json.dumps(person_dictionary)
 print(person_dictionary)
 print(type(person_dictionary))
 print(person_json)
 print(type(person_json))

出力:

{‘name’: ‘John’, ‘age’: 26}

<class ‘dict’>

{“name”: “John”, “age”: 26}

<class ‘str’>

変数 'person_dictioanry' と 'person_json' の両方に type() 関数を使用すると、Python フォーマットが JSON 文字列に変換されます。

プロキシはどのように役立つのか?

JSON解析は、スクレイピング、分析、データ移行、データ統合プロセスなどのデータ変換アプリケーションで広く好まれています。プロキシを使ったこれらのソリューションは、pythonを使った無制限のスクレイピングとデータ変換のより良い経験を手助けします。python リクエストでプロキシを追加する方法については、このブログを参照してください。 Proxyscrapeプロキシは解析処理を助ける様々なタイプを提供します。

こちらもお読みください

学校のプロキシを理解する

cURLプロキシの設定方法

プロキシ・チェーニング

よくある質問

1.なぜPythonでJSONを解析するのか?
JSONの解析は他の言語でも可能だが、Pythonの解析は、JSONデータの読み取り、変換、書き込みを簡単に処理するJSONパッケージが組み込まれているため、非常に人気がある。この構文解析は、ウェブスクレイピング、ニューススクレイピング、データ絞込み、データマイニング、検索エンジンスクレイピング、マーケティング業界など、データ変換が必要なアプリケーションで役立ちます。
2.JSONをサポートしている言語をいくつか挙げてください。
JSONフォーマットは、C++、Java、PHP、C#、Pythonをサポートしています。
3.JSONオブジェクトとは何ですか?
JSONオブジェクトは、中括弧で囲まれた名前と値のペアの集まりである。それぞれの名前と値のペアはコンマで区切られ、名前の後にはコロンが続く。

概要

JSONは、ウェブサイトを制作する上で欠かせないものとなっている。データ転送やデータ共有の必要があるときはいつでも、軽量で簡単に交換可能なJSON形式を使うことが多い。JSON形式はテキストに近いため、ユーザーは簡単に内容を理解することができる。また、機械がコンテンツを読み取り、機械が理解しやすい形式に解析することもできます。ここでは、open()、load()、loads()、dump()、dumps()のようなPythonのいくつかの変換関数について説明しました。JSONモジュールのこれらの組み込み関数は、JSONフォーマットからPythonデータ型へのデータの読み込みとパース、およびその逆を行うことができます。