Python JSON

JSON 函數

使用 JSON 函數須要導入 json 庫:import json。
函數 描述
json.dumps 將 Python 對象編碼成 JSON 字符串
json.loads 將已編碼的 JSON 字符串解碼爲 Python 對象

json.dumps

json.dumps 用於將 Python 對象編碼成 JSON 字符串。

語法

json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, 
cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw)

實例

如下實例將數組編碼爲 JSON 格式數據:
#!/usr/bin/python3
import json

data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]

json = json.dumps(data)
print (json)

以上代碼執行結果爲:python

[{"a": 1, "c": 3, "b": 2, "e": 5, "d": 4}]

使用參數讓 JSON 數據格式化輸出:json

>>> import json
>>> print json.dumps({'a': 'Runoob', 'b': 7}, sort_keys=True, indent=4, separators=(',', ': '))
{
"a": "Runoob",
"b": 7
}

python 原始類型向 json 類型的轉化對照表:數組

Python JSON
dict object
list, tuple array
str, unicode string
int, long, float number
True true
False false
None null

json.dump

json.dump()用於將 Python 對象編碼成 JSON 字符串,把寫入json文件中。
 
語法
dump (obj, fp, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None,
separators=None, encoding='utf-8', default=None, sort_keys=False, **kw)

實例函數

import json
name_emb = {"key1":"value1","key2":"value2"}
emb_filename=r'E:\learning\auto\python\emb_json.json'
json.dump(name_emb,open(emb_filename,'w'))

以上代碼執行結果爲:編碼

{"key1": "value1", "key2": "value2"}

json.loads

json.loads 用於解碼 JSON 數據。該函數返回 Python 字段的數據類型。

語法

json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])

實例

如下實例展現了Python 如何解碼 JSON 對象:
#!/usr/bin/python3
import json

jsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

text = json.loads(jsonData)
print (text)

以上代碼執行結果爲:spa

{u'a': 1, u'c': 3, u'b': 2, u'e': 5, u'd': 4}

json 類型轉換到 python 的類型對照表:code

JSON Python
object dict
array list
string unicode
number (int) int, long
number (real) float
true True
false False
null None
 

json.load

json.load()用於從json文件中讀取數據。
 
語法
load (fp, encoding=None, cls=None, object_hook=None, parse_float=None, parse_int=None, 
parse_constant=None, object_pairs_hook=None, **kw)

實例

import json
emb_filename=r'E:\learning\auto\python\emb_json.json'
js_Obj = json.load(open(emb_filename,'r'))
print(js_Obj)
print(type(js_Obj))

for key in js_Obj.keys():
    print('key:%s value: %s' %(key,js_Obj.get(key)))

以上代碼執行結果爲:對象

{'key1': 'value1', 'key2': 'value2'}
<class 'dict'>
key:key1 value: value1
key:key2 value: value2
相關文章
相關標籤/搜索