🐍

Pythonの辞書オブジェクトとJSONにハマった

2023/07/27に公開

🐍「PythonでJSONを読み込みたいな~」

と思って色々いじってたのですが
dict(dictionary)という辞書オブジェクトと
JSONの違いにハマったので書きます。

具体的には、「JSONや!変換せな!」と思って
せっせこjson.loads()していたのだけれども
JSONじゃなくて既にdictionary型でした、、

Dictionaryについて

こんな形式のPythonオブジェクトです↓

{'Apple':1, 'Banana':2, 'Cacao':3}

JSONについて

こんな形式のデータ定義です。

{"Apple":1, "Banana":2, "Cacao":3}

ハマったわけ

とある処理でデータを取ってきたときにprint()して
実際に取得された値を確認していたのですが、

パッと見JSONとそっくりだったから
🤔「JSONか~~」としばらく勘違いしてjson.loads()していました。

そのたびにこんなエラーが発生していました。

[ERROR] TypeError: the JSON object must be str, bytes or bytearray, not dict
Traceback (most recent call last):

🫠「JSONなのにJSONじゃないの!?」としばらく格闘、、(エラーをよく読みなさい)

型を見ようとtype(data)を出力してみたら
見慣れないデータ型dictが返ってきたので原因に気付きました。

すごい初歩的な間違いでしたが、
絶対忘れたころにやらかすヤツなので残しておきます。

memo

json.loadsってこんなヤツね
jsonData = '{"Apple":1, "Banana":2, "Cacao":3}'
fruitsList = json.loads(jsonData)

print(fruitsList["Cacao"]) # 出力結果:3
コラボスタイル Developers

Discussion