PythonでJSONデータを読み込む方法(load)と作成する方法(dumps)エンコードとデコード

load-dumps

こんにちはフロントエンドエンジニアのまさにょんです!

今回は、PythonでJSONデータを読み込む方法(load)と作成する方法(dumps)、エンコードとデコードについて解説します。

PythonでJSONデータを読み込む方法(load)と作成する方法(dumps)

テストのためにJSONファイルを作成

まずは、テストのために読み込むJSONファイルを作成します。

{
    "robotama": "ロボ玉",
    "purupuru_flag": true,
    "age": 2,
    "from": "神聖グンマー帝国",
    "brother_list": [
        "ロボ玉試作1号機",
        "ロボ玉試作2号機",
        "ロボ玉試作3号機"
    ],
    "skill": {
        "purupuru": "ぷるんぷるん",
        "hamham": "はむはむ",
        "sleep": "すやー"
    }
}

JSONデータを読み込む方法(load)と作成する方法(dumps)

JSONデータを読み込む(decodeする)場合はjson.load()でJSON文字列をパース(decode)して取り扱います。

また、JSONデータを作成する場合はjson.dumps() に辞書型などのデータを渡すとJSONデータに変換してくれます。

json.dumps() をする際に、引数に ensure_ascii=False を設定しておくと、日本語をそのまま表示ができます。

さらに、indent=2 と引数を設定すると、半角スペース2つ分のインテンドも設定できます。

### JSONデータの読み込みと作成方法(load, dumps)、エンコードとデコードの方法 ###

# 1. jsonを取り扱うためのモジュールをimportする
import json

import pprint

# 2. JSONファイルを読み込む
jsonFile = open('./Robotama.json', 'r', encoding="utf-8")

# 3. JSONファイルは、Pythonだと「_io.TextIOWrapper」というClass
print(type(jsonFile))
# 出力結果: <class '_io.TextIOWrapper'>

# 4. json.load() でJSON文字列をパース(decode)する => JSON文字列を読み込む
parseData = json.load(jsonFile)

# 5. json.load() をすると、JSON文字列は辞書型(dict)になる!
print(type(parseData))
# 出力結果: <class 'dict'>

# 6. 辞書型(dict)のデータ
pprint.pprint(parseData)
# < 出力結果 >
# {'age': 2,
#  'brother_list': ['ロボ玉試作1号機', 'ロボ玉試作2号機', 'ロボ玉試作3号機'],
#  'from': '神聖グンマー帝国',
#  'purupuru_flag': True,
#  'robotama': 'ロボ玉',
#  'skill': {'hamham': 'はむはむ', 'purupuru': 'ぷるんぷるん', 'sleep': 'すやー'}}

# 7. 辞書型の取り出し方で、データを取り出す
print(parseData['robotama'])
# 出力結果: ロボ玉

print(parseData['brother_list'][0])
# 出力結果: ロボ玉試作1号機

print(parseData['skill']['purupuru'])
# 出力結果: ぷるんぷるん


# 8. json.dumps() で、辞書型をJSON-文字列に変換する => JSON-encoding
jsonEncode = json.dumps(parseData, ensure_ascii=False, indent=2)

# 9. json.dumps の引数
# ensure_ascii=False を設定しておくと、日本語をそのまま表示できる => Unicode-Escape をさせない。
# indent=2 => インテンドの指定もできる!

# 10. JSON-文字列に、encodingしているので型は str型になる
print(type(jsonEncode))
# 出力結果: <class 'str'>

print(jsonEncode)
# < 出力結果 >
# {
#     "robotama": "ロボ玉",
#     "purupuru_flag": true,
#     "age": 2,
#     "from": "神聖グンマー帝国",    
#     "brother_list": [
#         "ロボ玉試作1号機",
#         "ロボ玉試作2号機",
#         "ロボ玉試作3号機"
#     ],
#     "skill": {
#         "purupuru": "ぷるんぷるん",
#         "hamham": "はむはむ",      
#         "sleep": "すやー"
#     }
# }

Twitterやってます!Follow Me!

神聖グンマー帝国の逆襲🔥

神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!

Python関係書籍

プログラミング学習・エンジニア転職関連の情報

自宅で現役エンジニアから学べる『TechAcademy』 (エンジニア転職保証)

『GEEK JOBキャンプ』スピード転職コース(無料)

【IT道場】入校時0円! 就職目的プログラミングスクール

エンジニア転職なら100%「自社開発」求人に強い【クラウドリンク】

『techgym』 (Python特化・無料)

参考・引用

  1. Pythonでファイルに書き込まれたJSON文字列をパースする

最近の投稿