元々Scrapboxに書いていた内容。
dict型変数の中身をファイルに書き出したい時などに重宝します。
JSONからdict型へ
.jsonファイルから読み込んでdict(辞書)型変数に変換
import json
dir = "読み込み先ファイルパス"
encoding = "utf-8" # 読み込むファイルのエンコードによって適宜変える。
with open(dir, mode="rt", encoding="utf-8") as f:
data = json.load(f) # JSONのファイル内容をdictに変換する。
JSON形式の文字列からdict型変数に変換
import json
s = '{"name":"太郎", "value": 100}' # 読み込む文字列
data = json.loads(s) # sをdictに変換
dict型からJSONへ
dict型変数からJSONに変換して保存
import json
dir = "書き込み先ファイルパス"
data = {"name":"太郎", "value": 100} # 任意のdict型変数
with open(dir, mode="wt", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False, indent=2)
-
ensure_ascii
の値をFalseにしないと、asciiにある文字以外はエンコードされてしまう。 -
indent
の値は任意で。-
2
とすると半角スペース2個でインデントする。
-
dict型変数からJSON形式の文字列に変換
import json
data = {"name":"太郎", "value": 100} # 任意のdict型変数
s = json.dumps(data, ensure_ascii=False, indent=2) # JSON形式の文字列に変換