標籤:python json dumps loads
python 中的json 模板主要的兩個功能:序列化和還原序列化
序列化: encoding 將python 資料 編碼成json 字串
對應的函數有 dump 和 dumps
還原序列化: decoding 將json 字串 解碼成 python 資料
對應的函數有 load 和 loads
json 序列化 dumps 執行個體:
Base example
>>> import json>>> data=[‘foo‘, {‘bar‘: (‘baz‘, None, 1.0, 2)}]>>> print data[‘foo‘, {‘bar‘: (‘baz‘, None, 1.0, 2)}]>>> json_data=json.dumps(data)>>> print json_data["foo", {"bar": ["baz", null, 1.0, 2]}]>>>
Compact encoding(壓縮編碼)
>>> import json>>> data = [1,2,3,{‘4‘: 5, ‘6‘: 7}]>>> print data[1, 2, 3, {‘4‘: 5, ‘6‘: 7}]>>> data_json = json.dumps(data)>>> print data_json[1, 2, 3, {"4": 5, "6": 7}]>>> data_json2 = json.dumps(data,sort_keys=True)>>> print data_json2[1, 2, 3, {"4": 5, "6": 7}]>>> data_json2 = json.dumps(data,sort_keys=True,separators=(‘,‘,‘:‘))>>> print data_json2[1,2,3,{"4":5,"6":7}]
參數 separators 將 , 和 : 後門的空格剔除掉了。 separators 的值必須是一個 tuple
協助中的英文注釋:
If specified, separators should be a (item_separator, key_separator) tuple.
The default is (‘, ‘, ‘: ‘). To get the most compact JSON
representation you should specify (‘,‘, ‘:‘) to eliminate whitespace.
Pretty printing(一種格式化輸出)
>>> data_json3 = json.dumps(data,sort_keys=True,indent=4,separators=(‘,‘,‘:‘))>>> print data_json3[ 1, 2, 3, { "4":5, "6":7 }]
indent 會讓每個索引值對顯示的時候,以縮排幾個字元對齊。以方便查看
協助中的英文注釋:
If indent is a non-negative integer, then JSON array elements and object members will be pretty-printed with that indent level. An indent level of 0 will only insert newlines.None is the most compact representation. Since the default item separator is ‘, ‘, the output might include trailing whitespace when indent is specified. You can use separators=(‘,‘, ‘: ‘) to avoid this.
josn 還原序列化 loads 執行個體:
>>> obj = [u‘foo‘, {u‘bar‘: [u‘baz‘, None, 1.0, 2]}]>>> str_json = ‘["foo", {"bar":["baz", null, 1.0, 2]}]‘>>> obj2 = json.loads(str_json)>>> print obj2[u‘foo‘, {u‘bar‘: [u‘baz‘, None, 1.0, 2]}]>>> obj2 == objTrue
大資料處理:
以上不論時序列化的dumps 和 還原序列化的loads 。所針對的資料都是一個json 字串 或者時 一個python 的資料結構。那麼當遇到了大量的json資料(如一個json 的設定檔)
或者 將一個python 的資料結構匯出成一個json 的設定檔。
#! /usr/bin/env python# _*_ encoding: utf-8 _*_import json# dump exampledata = [{‘lang‘:(‘python‘,‘java‘),‘school‘:"beijing"},"God"]f = open(‘test.json‘,‘w+‘)json.dump(data,f)f.flush()f.close()# load examplefd = file("test.json")js = json.load(fd)print js
奇淫巧計:
python 的 json 結合 shell 輸出
$ echo ‘{"json":"obj"}‘ | python -m json.tool { "json": "obj" }
本文出自 “學習筆記” 部落格,請務必保留此出處http://unixman.blog.51cto.com/10163040/1649960
Python 中 的 json 模組