JSON(JavaScript Object Notation)は簡単に読み書きするために、軽量のデータ交換フォーマットです。
使用1.jsonライブラリ
JSON JSONライブラリ関数を使用すると、インポートする必要があります:インポートJSONを。
機能 | 説明 |
---|---|
json.dumps | JSON文字列のPythonのオブジェクトをコードします |
json.loads | エンコードされたJSON文字列は、Pythonオブジェクトをデコード |
JSON文字列にPythonオブジェクトをコードする1 json.dumps。
文法
json.dumps(allow_nan = Trueの場合、CLS =なし、インデント=なし、セパレータ=なし、エンコード= "UTF-8"、デフォルト=なし、sort_keys = Falseに、OBJ、skipkeys = Falseを、ensure_ascii =真、check_circular =真、 **キロワット)
例えば:JSON文字列のPythonにオブジェクトの配列
#!は/ usr / binに/ pythonの 輸入JSON データ= [{ '名前': 'ジョン・ドウ'、 '年齢':25}、{ '名前': 'ジョン・ドウ'、 '年齢':26}] jsonStr = json.dumps(データ) 印刷(jsonStr)
結果:
[{ "名前": "\ u5f20 \ u4e09"、 "年齢":25}、{ "名前": "\ u674e \ u56db"、 "年齢":26}]
たとえば:レッツJSONはデータ出力をフォーマットさ:
#!は/ usr / binに/ pythonの 輸入JSON データ= [{ '名前': 'ジョン・ドウ'、 '年齢':25}、{ '名前': 'ジョン・ドウ'、 '年齢':26}] jsonStr = json.dumps(データ、sort_keys =真、インデント= 4、セパレータ=( ''、 ':')) 印刷(jsonStr)
結果:
[
{
"年齢":25、
"名前": "\ u5f20 \ u4e09"
}、
{
"年齢":26、
"名前": "\ u674e \ u56db"
}
]
オブジェクトが漢字に変換されたときにJSONパイソンを話すために、文字列では、Unicode文字に書式設定上記、Unicodeに変換されていない場合、あなたは次の方法を使用することができます。
#!は/ usr / binに/ pythonの 輸入JSON データ= [{ '名前': 'ジョン・ドウ'、 '年齢':25}、{ '名前': 'ジョン・ドウ'、 '年齢':26}] jsonStr = json.dumps(データ、ensure_ascii =偽) 印刷(タイプ(jsonStr)) 印刷(jsonStr)
結果:
<クラスのSTR '>
[{ "名前": "张三"、 "年齢":25}、{ "名前": "李四"、 "年齢":26}]
変換テーブルJSONタイプのパイソンオリジナルタイプ:
パイソン | JSON |
---|---|
辞書 | オブジェクト |
リスト、タプル | アレイ |
STR、ユニコード | 弦 |
int型、長い、フロート | 数 |
真 | 真 |
偽 | 偽 |
なし | ヌル |
2. json.loads JSONデータをデコード。この関数は、フィールドのデータ型のPythonを返します。
文法
json.loads(S [[コード、CLS [、object_hook [、parse_float [、parse_int [、parse_constant [、object_pairs_hook [** KW]]]]]]]])
たとえば:JSON文字列オブジェクトは、PYを回します
#!は/ usr / binに/ pythonの 輸入JSON データ= [{ '名前': 'ジョン・ドウ'、 '年齢':25}、{ '名前': 'ジョン・ドウ'、 '年齢':26}] jsonStr = json.dumps(データ) 印刷(jsonStr) jsonObj = json.loads(jsonStr) 印刷(jsonObj) #最初のコレクションを取得します。 プリント(jsonObj [1])
結果
[{ "名前": "\ u5f20 \ u4e09"、 "年齢":25}、{ "名前": "\ u674e \ u56db"、 "年齢":26}]
[{ '名前': '张三'、 '年齢':25}、{ '名前': '李四'、 '年齢':26}]
{ '名前': '李四'、 '年齢':26}
パイソンの型にJSON型変換テーブル:
JSON | パイソン |
---|---|
オブジェクト | 辞書 |
アレイ | リスト |
弦 | ユニコード |
番号(int型) | int型、長いです |
数(実数) | 浮く |
真 | 真 |
偽 | 偽 |
ヌル | なし |
2. Demjson利用のサードパーティ製のライブラリ
Demjson Pythonのサードパーティのモジュールは、それがフォーマット、エンコード及びデコードJSONデータに使用され、JSONLintチェック機能が含まれていることができ、ライブラリです。
モジュールをインストール1.
(1)ダウンロード
https://github.com/dmeranda/demjson
インストール後に(2)エキス
$ PWD /c/Users/Administrator/Desktop/pytest/pymodule/demjson-release-2.2.4 管理者@ MicroWin10-1535にMinGW64〜/デスクトップ/ pytest / pymodule / demjson-リリース2.2.4 $ pythonのは、setup.py installを
2. JSON機能
機能 | 説明 |
---|---|
エンコード | JSON文字列のPythonのオブジェクトをコードします |
デコード | エンコードされたJSON文字列は、Pythonオブジェクトをデコード |
(1)エンコード()関数は、PythonのJSON文字列にオブジェクトを符号化するために使用されます。
文法
demjson.encode(自己、OBJ、nest_level = 0)
例えば:
#!は/ usr / binに/ pythonの 輸入demjson データ= [{ '':1、 'B':2 'C':3、 'D':4 'E':5}] JSON = demjson.encode(データ) 印刷(JSON)
結果:
[{ "":1、 "B":2、 "C":3 "D":4、 "E":5}]
JSONデータを復号化する(2)demjson.decode()関数。この関数は、フィールドのデータ型のPythonを返します。
構文:
demjson.decode(自己、TXT)
たとえば、次のようにJSON JSONオブジェクトに文字列:
#!は/ usr / binに/ pythonの 輸入demjson jsonData = '{ "名": "张三"、 "年齢":20、 "セックス": "男"}'; OBJ = demjson.decode(jsonData) 印刷(OBJ) 印刷(タイプ(OBJ))
結果:
{ '名前': 'ジョン・ドウ'、 '年齢':20、 'セックス': ' M'}
<クラスの辞書'>