Skip to content

Latest commit

 

History

History
151 lines (112 loc) · 3.81 KB

File metadata and controls

151 lines (112 loc) · 3.81 KB
title Python JSON モジュール - Python チートシート
description Python には、JSON(JavaScript Object Notation)データを扱うための組み込みモジュール json があります。
Python JSON モジュール

JSON は JavaScript Object Notation の略で、データを保存および転送するための軽量な形式です。JSON は、データがサーバーから Web ページに送信される際によく使用されます。

Python には、JSON データを操作できる組み込みモジュールjsonがあります。

import json

JSON データ型

JSON オブジェクトは Python の辞書に似ていますが、次の違いがあります。

  • JSON キーは常に文字列です。
  • 文字列は常に二重引用符で囲まれます。
  • JSON ブール値は小文字で始まります。
  • nullは Python のNoneに相当する JSON です。

JSON がサポートするデータ型は次のとおりです。

  • String (文字列)
  • Number (数値)
  • boolean (ブール値)
  • null
  • Object (オブジェクト)
  • Array (配列)

例:

{
  "name": "Charles",
  "age": 33,
  "has_hair": false,
  "hobbies": ["photography", "running"],
  "appearance": {
    "eyes": "brown",
    "hair_color": null
  }
}

JSON loads() メソッド

json.loadsメソッドを使用すると、JSON オブジェクトを解析し、Python の辞書に変換できます。

import json

# 解析する JSON 文字列
json_person = '{"name": "Charles", "age": 33, "has_hair": false, "hobbies": ["photography", "running"]}'
# JSON 文字列を Python 辞書に解析
python_person = json.loads(json_person)
python_person
{'name': 'Charles', 'age': 33, 'has_hair': False, 'hobbies': ['photography', 'running']}
type(python_person)
<class 'dict'>
# get メソッドを使用して辞書の値にアクセス
python_person.get("name")
'Charles'

JSON dumps() メソッド

その逆の操作です。dumps()メソッドは Python オブジェクトを JSON 文字列に変換します。

import json

# 変換する Python 辞書
python_person = {'name': 'Charles', 'age': 33, 'has_hair': False, 'hobbies': ['photography', 'running']}
# Python オブジェクトを JSON 文字列に変換
json_person = json.dumps(python_person)

json_person
'{"name": "Charles", "age": 33, "has_hair": false, "hobbies": ["photography", "running"]}'
type(json_person)
<class 'str'>

JSON ファイルの読み書き

JSON ファイルの読み込み

import json
# JSON ファイルを読み込む
with open("filename.json", "r") as f:
    json_content = json.loads(f.read())

# 注:この行は冗長に見えます - json_content はすでに解析されています
json.loads(json_content)
{'name': 'Charles', 'age': 33, 'has_hair': False}

JSON ファイルの書き込み

import json

person = {'name': 'Charles', 'age': 33}

# Python 辞書を JSON ファイルに書き込む
with open("filename.json", "w") as f:
    f.write(json.dumps(person))

関連リンク

  • チートシート:JSON と YAML
  • チートシート:辞書
  • チートシート:ファイルの読み書き
  • ブログ:Python データ型
  • dict()
  • str()
  • open()