0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Python_jsonライブラリで使用頻度が高い標準メソッド10選

Last updated at Posted at 2024-12-27

Python_jsonライブラリで使用頻度が高い標準メソッド10選

  • 用途: JSON形式のデータの読み書き。
  • : json.dumps, json.loads.
import json

使用率が高いメソッド10選

  1. json.dumps(obj):
    PythonオブジェクトをJSON文字列に変換します。

    data = {"name": "Alice", "age": 25}
    json_str = json.dumps(data)
    print(json_str)  # {"name": "Alice", "age": 25}
    
  2. json.loads(s):
    JSON文字列をPythonオブジェクトに変換します。

    json_str = '{"name": "Alice", "age": 25}'
    data = json.loads(json_str)
    print(data)  # {'name': 'Alice', 'age': 25}
    
  3. json.dump(obj, fp):
    PythonオブジェクトをJSON形式でファイルに書き込みます。

    data = {"name": "Alice", "age": 25}
    with open("data.json", "w") as f:
        json.dump(data, f)
    
  4. json.load(fp):
    JSON形式のファイルをPythonオブジェクトとして読み込みます。

    with open("data.json", "r") as f:
        data = json.load(f)
    print(data)
    
  5. json.JSONEncoder:
    カスタムエンコーダーでPythonオブジェクトをJSONに変換します。

    class CustomEncoder(json.JSONEncoder):
        def default(self, obj):
            if isinstance(obj, set):
                return list(obj)
            return super().default(obj)
    
    data = {"set_data": {1, 2, 3}}
    print(json.dumps(data, cls=CustomEncoder))
    
  6. json.JSONDecoder:
    JSON文字列のデコードをカスタマイズします。

    decoder = json.JSONDecoder()
    print(decoder.decode('{"name": "Alice", "age": 25}'))
    
  7. indent 引数:
    dumps または dump に使用して、整形されたJSONを生成します。

    data = {"name": "Alice", "age": 25}
    print(json.dumps(data, indent=4))
    
  8. sort_keys 引数:
    dumps または dump に使用して、キーをソートしてJSONを生成します。

    data = {"b": 1, "a": 2}
    print(json.dumps(data, sort_keys=True))
    
  9. separators 引数:
    JSON文字列の区切り文字をカスタマイズします。

    data = {"name": "Alice", "age": 25}
    print(json.dumps(data, separators=(",", ":")))
    
  10. ensure_ascii 引数:
    ASCII以外の文字をエスケープするかどうかを指定します。

    data = {"name": "アリス"}
    print(json.dumps(data, ensure_ascii=False))  # {"name": "アリス"}
    

用語説明

1. エンコード (Encode)

エンコードとは、データや情報を特定のフォーマットに変換する処理のことを指します。

主な用途:

  • 文字列のバイト列変換(例: UTF-8, Base64)
  • 画像・動画形式への圧縮(例: JPEG, MP4)

例:

text = "こんにちは"
encoded_text = text.encode("utf-8")
print(encoded_text)  # b'\xe3\x81\x93\xe3\x82\x93\xe3\x81\xab\xe3\x81\xa1\xe3\x81\xaf'

2. デコード (Decode)

デコードは、エンコードされたデータを元の形式に戻す処理のことです。

主な用途:

  • 文字列の復元: バイト列やエンコードされたデータを元の文字列形式に戻す。
  • 圧縮データの復元: 特定の形式でエンコードされたデータを復元する。

具体例:

Base64デコード

import base64

encoded = b"SGVsbG8gd29ybGQh"  # Base64でエンコードされたデータ
decoded = base64.b64decode(encoded).decode("utf-8")
print(decoded)  # Hello world!

3. ダンプ (Dump)

ダンプは、プログラム内のデータや構造を外部に出力する処理を指します。

主な用途:

デバッグ: プログラム内の状態やデータを確認するために内容を出力。
永続化: データ構造やオブジェクトをファイル形式で保存して後で再利用可能にする。

具体例:

JSON形式でデータをダンプ

import json

# データの定義
data = {"name": "Alice", "age": 30}

# JSONファイルにダンプする
with open("data.json", "w") as f:
    json.dump(data, f)  # データをJSON形式で保存

# ダンプしたデータを読み込む
with open("data.json", "r") as f:
    loaded_data = json.load(f)  # JSONから元のデータ形式を復元

print(loaded_data)  # {'name': 'Alice', 'age': 30}
0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?