Python之json模組

來源:互聯網
上載者:User

標籤:python   序列化   json   

實際上JSON就是Python字典的字串表示,但是字典作為一個複雜物件是無法直接傳遞,所以需要將其轉換成字串形式.轉換的過程也是一種序列化過程.

用json.dumps序列化為json字串格式
>>> import json>>> dic {‘Connection‘: [‘keep-alive‘], ‘Host‘: [‘127.0.0.1:5000‘], ‘Cache-Control‘: [‘max-age=0‘]}>>> jdict = json.dumps({‘Connection‘: [‘keep-alive‘], ‘Host‘: [‘127.0.0.1:5000‘], ‘Cache-Control‘: [‘max-age=0‘]})>>> print jdict{"Connection": ["keep-alive"], "Host": ["127.0.0.1:5000"], "Cache-Control": ["max-age=0"]}

雖然dic和jdict列印的字串是相同的,但是實際它們的類型是不一樣的.dic是字典類型,jdict是字串類型

<type ‘dict‘>>>> type(jdic)>>> type(jdict)<type ‘str‘>

可以用json.dumps序列化列表為json字串格式

>>> list = [1, 4, 3, 2, 5] >>> jlist = json.dumps(list)>>> print jlist[1, 4, 3, 2, 5]

list和jlist類型同樣是不一樣的

>>> type(list)<type ‘list‘>>>> type(jlist)<type ‘str‘>

json.dumps有如下多種參數

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)

key排序

>>> print json.dumps({1:‘a‘, 4:‘b‘, 3:‘c‘, 2:‘d‘, 5:‘f‘},sort_keys=True){"1": "a", "2": "d", "3": "c", "4": "b", "5": "f"}

格式對齊

>>> print json.dumps({‘4‘: 5, ‘6‘: 7}, sort_keys=True, indent=4){    "4": 5,     "6": 7}

指定分隔字元

>>> json.dumps([1,2,3,{‘4‘: 5, ‘6‘: 7}], separators=(‘,‘,‘:‘))‘[1,2,3,{"4":5,"6":7}]‘
用json.dump序列化到檔案對象中
>>> json.dump({‘4‘: 5, ‘6‘: 7}, open(‘savejson.txt‘, ‘w‘))>>> print open(‘savejson.txt‘).readlines()[‘{"4": 5, "6": 7}‘]

json.dump參數和json.dumps類似

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)
json.loads把json字串還原序列化為python對象

函數簽名為:

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

注意這裡的”s”必須是字串,還原序列化後為unicode字元

>>> dobj = json.loads(‘{"name":"aaa", "age":18}‘)>>> type(dobj)<type ‘dict‘>>>> print dobj{u‘age‘: 18, u‘name‘: u‘aaa‘}
json.load從檔案中還原序列化為python對象

簽名為:

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

執行個體:

>>> fobj = json.load(open(‘savejson.txt‘))>>> print fobj{u‘4‘: 5, u‘6‘: 7}>>> type(fobj)<type ‘dict‘>

Python之json模組

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.