標準に用意されているjsonライブラリを使うと、
PythonオブジェクトのJSON化(直列化、シリアライズ、JSONエンコーディング)、および、
JSONからPythonオブジェクトへの変換(デシリアライズ、JSONデコーディング)を行える。
文字列でJSONを渡して、辞書dictで取得する。
python_object = json.loads('{"name": "Taro", "age": 20, "items": [1.1, 2.2, 3.3]}')
print(python_object)
# => {'name': 'Taro', 'age': 20, 'items': [1.1, 2.2, 3.3]}
print(type(python_object))
# => <class 'dict'>
先程とは逆に辞書dictを、文字列JSONに変換する。
python_object = { 'name':'Taro', 'age':20, 'items':[1.1,2.2,3.3]}
json_string = json.dumps(python_object)
print(json_string)
# => {"name": "Taro", "age": 20, "items": [1.1, 2.2, 3.3]}
print(type(json_string))
# => <class 'str'>
文字列ではなく、ファイルオブジェクトへの書き込み・読み込みを行うための関数も用意されている。
# 辞書オブジェクトをJSONにしてファイルに書き込み
with open('./sample.txt', mode='w', encoding='utf-8') as f:
python_object = { 'name':'Taro', 'age':20, 'items':[1.1,2.2,3.3]}
json.dump(python_object, f)
# ファイルに書き込んだ文字列の確認
with open('./sample.txt', mode='r', encoding='utf-8') as f:
json_string = f.read()
print(json_string)
# => {"name": "Taro", "age": 20, "items": [1.1, 2.2, 3.3]}
# ファイルを読み込んで辞書オブジェクトに変換
with open('./sample.txt', mode='r', encoding='utf-8') as f:
po = json.load(f)
print(po)
# => {"name": "Taro", "age": 20, "items": [1.1, 2.2, 3.3]}
print(type(po))
# <class 'dict'>
loads/loadやdumps/dumpは変換の詳細を引数で指定できる。
json.loads(s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
json.load(fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
json.dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
json.dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
(',', ':')
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント