python json模塊使用實(shí)例
來源:易賢網(wǎng) 閱讀:619 次 日期:2016-06-20 09:51:08
溫馨提示:易賢網(wǎng)小編為您整理了“python json模塊使用實(shí)例”,方便廣大網(wǎng)友查閱!

實(shí)際上json就是python字典的字符串表示,但是字典作為一個(gè)復(fù)雜對(duì)象是無法直接傳遞,所以需要將其轉(zhuǎn)換成字符串形式.轉(zhuǎn)換的過程也是一種序列化過程.

用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打印的字符串是相同的,但是實(shí)際它們的類型是不一樣的.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有如下多種參數(shù)

代碼如下:

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}

格式對(duì)齊

代碼如下:

>>> 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序列化到文件對(duì)象中

代碼如下:

>>> json.dump({'4': 5, '6': 7}, open('savejson.txt', 'w'))

>>> print open('savejson.txt').readlines()

['{4: 5, 6: 7}']

json.dump參數(shù)和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對(duì)象

函數(shù)簽名為:

代碼如下:

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對(duì)象

簽名為:

代碼如下:

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

實(shí)例:

代碼如下:

>>> fobj = json.load(open('savejson.txt'))

>>> print fobj

{u'4': 5, u'6': 7}

>>> type(fobj)

<type 'dict'>

更多信息請(qǐng)查看腳本欄目
易賢網(wǎng)手機(jī)網(wǎng)站地址:python json模塊使用實(shí)例
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國(guó)考·省考課程試聽報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)