Python對象與json數(shù)據(jù)得轉(zhuǎn)換問題實(shí)例詳解

    目錄

    JSON(JavaScript Object Notation) 是一種輕量級得數(shù)據(jù)交換格式,易于人閱讀和編寫。

    JSON 函數(shù)

    使用 JSON 函數(shù)需要導(dǎo)入 json 庫:import json

    函數(shù)描述
    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)

    實(shí)例

    以下實(shí)例將數(shù)組編碼為 JSON 格式數(shù)據(jù):

    實(shí)例

    #!/usr/bin/pythonimport jsondata = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]data2 = json.dumps(data)print(data2)

    以上代碼執(zhí)行結(jié)果為:

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

    使用參數(shù)讓 JSON 數(shù)據(jù)格式化輸出:

    實(shí)例

    #!/usr/bin/pythonimport jsondata = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]data2 = json.dumps({'a': 'Runoob', 'b': 7}, sort_keys=True, indent=4, separators=(',', ': '))print(data2)

    以上代碼執(zhí)行結(jié)果為:

    {
        "a": "Runoob",
        "b": 7
    }

    python 原始類型向 json 類型得轉(zhuǎn)化對照表:

    PythonJSON
    dictobject
    list, tuplearray
    str, unicodestring
    int, long, floatnumber
    Truetrue
    Falsefalse
    Nonenull

    json.loads

    json.loads 用于解碼 JSON 數(shù)據(jù)。該函數(shù)返回 Python 字段得數(shù)據(jù)類型。

    語法

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

    實(shí)例

    以下實(shí)例展示了Python 如何解碼 JSON 對象:

    實(shí)例

    #!/usr/bin/pythonimport jsonjsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}';text = json.loads(jsonData)print(text)

    以上代碼執(zhí)行結(jié)果為:

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

    json 類型轉(zhuǎn)換到 python 得類型對照表:

    JSONPython
    objectdict
    arraylist
    stringunicode
    number (int)int, long
    number (real)float
    trueTrue
    falseFalse
    nullNone

    更多內(nèi)容參考:https://docs.python.org/2/library/json.html

    使用第三方庫:Demjson

    Demjson 是 python 得第三方模塊庫,可用于編碼和解碼 JSON 數(shù)據(jù),包含了 JSONLint 得格式化及校驗(yàn)功能。

    Github 地址:https://github.com/dmeranda/demjson

    官方地址:http://deron.meranda.us/python/demjson/

    環(huán)境配置

    在使用 Demjson 編碼或解碼 JSON 數(shù)據(jù)前,我們需要先安裝 Demjson 模塊。本教程我們會(huì)下載 Demjson 并安裝:

    $ tar -xvzf demjson-2.2.3.tar.gz$ cd demjson-2.2.3$ python setup.py install

    更多安裝介紹查看:http://deron.meranda.us/python/demjson/install

    JSON 函數(shù)

    函數(shù)描述
    encode將 Python 對象編碼成 JSON 字符串
    decode將已編碼得 JSON 字符串解碼為 Python 對象

    encode

    Python encode() 函數(shù)用于將 Python 對象編碼成 JSON 字符串。

    語法

    demjson.encode(self, obj, nest_level=0)

    實(shí)例

    以下實(shí)例將數(shù)組編碼為 JSON 格式數(shù)據(jù):

    實(shí)例

    #!/usr/bin/pythonimport demjsondata = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]json = demjson.encode(data)print(json)

    以上代碼執(zhí)行結(jié)果為:

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

    decode

    Python 可以使用 demjson.decode() 函數(shù)解碼 JSON 數(shù)據(jù)。該函數(shù)返回 Python 字段得數(shù)據(jù)類型。

    語法

    demjson.decode(self, txt)

    實(shí)例

    以下實(shí)例展示了Python 如何解碼 JSON 對象:

    實(shí)例

    #!/usr/bin/pythonimport demjsonjson = '{"a":1,"b":2,"c":3,"d":4,"e":5}';text = demjson.decode(json)print(text)

    以上代碼執(zhí)行結(jié)果為:

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

     測試程序:

    import json#json_data = [{"蘋果":"appale","香蕉":"banana"},#			 {"貓":"cat","狗":"dog"},#			 {"紅色":"red","藍(lán)色":"blue"},] #python數(shù)據(jù)類型: listjson_data = [{"a":"appale","b":"banana"},			 {"c":"cat","d":"dog"},			 {"r":"red","b":"blue"},]print(json_data)#[{'a': 'appale', 'b': 'banana'}, {'c': 'cat', 'd': 'dog'}, {'r': 'red', 'b': 'blue'}]print(type(json_data))#<class 'list'>json_data2 = json.dumps(json_data)#json.dumps 用于將 Python 對象編碼成 JSON 字符串。print(json_data2)#[{"a": "appale", "b": "banana"}, {"c": "cat", "d": "dog"}, {"r": "red", "b": "blue"}]print(type(json_data2))#<class 'str'>site = {    "sites": [        { "name":"之家" , "url":"www.jb51.net" },         { "name":"google" , "url":"www.google.com" },         { "name":"微博" , "url":"www.weibo.com" }    ]}#print(sites) #NameError: name 'sites' is not definedprint(site['sites'])

    到此這篇關(guān)于Python對象與json數(shù)據(jù)得轉(zhuǎn)換得內(nèi)容就介紹到這了,更多相關(guān)Python對象轉(zhuǎn)換json數(shù)據(jù)內(nèi)容請搜索之家以前得內(nèi)容或繼續(xù)瀏覽下面得相關(guān)內(nèi)容希望大家以后多多支持之家!

    聲明:所有內(nèi)容來自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準(zhǔn)確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。
    發(fā)表評論
    更多 網(wǎng)友評論1 條評論)
    暫無評論

    返回頂部

    主站蜘蛛池模板: 一区二区三区波多野结衣| 久久久无码精品人妻一区| 麻豆国产在线不卡一区二区 | 欧洲无码一区二区三区在线观看| 一区二区三区人妻无码| 亚洲av无一区二区三区| 国模无码视频一区二区三区| 国产一区二区在线视频播放| 精品乱子伦一区二区三区| 国产成人片视频一区二区| 国产伦理一区二区| 亚洲视频一区二区三区四区| 免费萌白酱国产一区二区| 国产美女在线一区二区三区| 国产成人久久精品麻豆一区| 久久蜜桃精品一区二区三区| 国产精品福利一区二区久久| 免费无码VA一区二区三区| 亚洲一区二区三区成人网站 | 国产剧情国产精品一区| 国产精品毛片VA一区二区三区 | 中文字幕视频一区| 亚洲乱码日产一区三区| 日韩爆乳一区二区无码| 日本一区二区三区精品国产| 3D动漫精品啪啪一区二区下载| 亚洲乱码国产一区网址| 国产成人一区二区三区免费视频 | 国产精品成人99一区无码| 奇米精品视频一区二区三区| 精品无码一区在线观看| 亚洲电影一区二区三区| 亚洲AV无码一区二区三区人 | 日韩人妻无码一区二区三区久久| 中文乱码精品一区二区三区| 一区视频在线播放| 中文字幕在线一区| 亚洲一区二区三区精品视频| 麻豆AV天堂一区二区香蕉 | 一区二区三区影院| 国产人妖视频一区二区|