JsonからDictへ
JSONとは
ウィキペディアによれば、JSONは以下のように整理できる.
JSON(JavaScript Object Notation)は、属性-値ペア(attribute-valueペア)、配列データ型(array data types)、または他のすべての直列可能値(serializable value)、または「キー値ペア」からなるデータ対象を伝達するためのオープン標準フォーマットであり、人間が読むことができるテキストを使用する.非同期ブラウザ/サーバ通信(AJAX)を実現するために、XML(AJAXで使用)に代わる主なデータフォーマットが広い範囲である.特に、インターネットで資料を交換する際、資料を表現する方法で有名です.資料の種類には大きな制限はなく,特にコンピュータプログラムの変数値を表すのに適している.
もともとjavascript言語から派生し、javascriptの構文形式に従っていたが、言語独立のデータフォーマットである.すなわち,プログラミング言語やプラットフォームとは独立しているため,文法解析やJSONデータの生成に用いられるコードは,C,C+,C#,Java,JavaScript,真珠,Pythonなど多くのプログラミング言語で容易に使用できる.
これまでPostmanでよく撮影されていたJSON形式は以下の通り.
{
"id" : 1, #int
"name" : "Test", #String
"birth" : 19890203, #int
"interests" : ["코딩", "운동", "음악감상"], #list
"finance_status" : {"자산" : 100 #dictionary(object)
"부채" : 30
"자본" : 70
}
}
以上のようにJSONはJavaScriptに従い、数値(number)、文字列(string)、ブール値(boolean)、オブジェクト(object)、配列(array)、Nullの値であってもよい.Pythonで
Pythonが提供するタイプはJSONが提供するタイプと1:1で一致するように設計されています.次の表を参照してください.
JSONでは、符号化方式としてUTF-8、16、32を用いることができ、最大の互換性を確保するために用いられる符号化方式はUTF-8である.また、符号化バイト順(BOM)の追加は禁止されている.
PythonでJSONを使用するため、jsonモジュールを使用できます.
JSONはstrまたはbyte形式のみです.辞書で整理して渡すと、次のエラーが発生します.
## JSON이 위 처럼 온다고 가졍
import json
json_content = {
"id" : 1,
"name" : "Test",
"birth" : 19890203,
"interests" : ["코딩", "운동", "음악감상"],
"finance_status" : {"자산" : 100
"부채" : 30
"자본" : 70
}
}
json.loads(json_content)
>>>
TypeError: the JSON object must be str, bytes or bytearray, not dict
上の内容を「」に組み合わせてstrに変更します.import json
json_content = '{
"id" : 1,
"name" : "Test",
"birth" : 19890203,
"interests" : ["코딩", "운동", "음악감상"],
"finance_status" : {"자산" : 100
"부채" : 30
"자본" : 70
}
}'
type(json_content)
type(json.loads(json_content))
>>>
<class 'str'>
<class 'dict'>
デフォルトでは、Pythonでjsonモジュールのdumpとdumpsを使用してJSONに変更できます.公式文書のdumpとdumpの使い方はそれぞれ以下の通りです.
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)
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)
dumpとdumpの違いは、dumpがobjをJSON形式のストリーム書き込み()をサポートするファイルクラスオブジェクトにシリアル化し、dumpがobjをJSON形式のstrにシリアル化することである.
上記のコードに示すように、jsonを読み出す方法は、jsonモジュールのloadおよびloadを使用することができる.loadとloadにもdumpとdumpsの違いがあります.
json.負荷ですね.read()をサポートするテキストファイルまたはバイナリファイルをPythonオブジェクトに逆シーケンス化し、jsonを使用します.loadsはstr、bytes、またはbytearrayインスタンスをPythonオブジェクトに逆シーケンス化します.
使い方は以下の通りです.
json.load(fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
json.loads(s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
長い間議論する.
json dumpではなく、倉庫に内蔵された
django.http import JsonResponse
を使用します!ほほほ終わりだ!
Reference
この問題について(JsonからDictへ), 我々は、より多くの情報をここで見つけました https://velog.io/@holyja/Django-Json-에서-Dict-까지テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol