🐍
Pythonの辞書オブジェクトとJSONにハマった
🐍「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
Discussion