Python對象與json數據得轉換問題實例詳解

    目錄

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

    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/pythonimport jsondata = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]data2 = json.dumps(data)print(data2)

    以上代碼執行結果為:

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

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

    實例

    #!/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)

    以上代碼執行結果為:

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

    python 原始類型向 json 類型得轉化對照表:

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

    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/pythonimport jsonjsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}';text = json.loads(jsonData)print(text)

    以上代碼執行結果為:

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

    json 類型轉換到 python 得類型對照表:

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

    更多內容參考:https://docs.python.org/2/library/json.html

    使用第三方庫:Demjson

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

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

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

    環境配置

    在使用 Demjson 編碼或解碼 JSON 數據前,我們需要先安裝 Demjson 模塊。本教程我們會下載 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 函數

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

    encode

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

    語法

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

    實例

    以下實例將數組編碼為 JSON 格式數據:

    實例

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

    以上代碼執行結果為:

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

    decode

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

    語法

    demjson.decode(self, txt)

    實例

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

    實例

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

    以上代碼執行結果為:

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

     測試程序:

    import json#json_data = [{"蘋果":"appale","香蕉":"banana"},#			 {"貓":"cat","狗":"dog"},#			 {"紅色":"red","藍色":"blue"},] #python數據類型: 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'])

    到此這篇關于Python對象與json數據得轉換得內容就介紹到這了,更多相關Python對象轉換json數據內容請搜索之家以前得內容或繼續瀏覽下面得相關內容希望大家以后多多支持之家!

    聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
    發表評論
    更多 網友評論1 條評論)
    暫無評論

    返回頂部

    主站蜘蛛池模板: 日本一区二区三区免费高清| 国产探花在线精品一区二区| 麻豆一区二区在我观看| 日韩一区二区三区在线| 91精品一区二区三区久久久久| 一区二区三区日本视频| 日本v片免费一区二区三区 | 国产无线乱码一区二三区| 福利一区二区三区视频午夜观看| 亚洲Av无码一区二区二三区| 国产综合无码一区二区辣椒| 久久精品无码一区二区三区日韩 | 色综合视频一区二区三区44| 少妇激情一区二区三区视频| 亚洲AV无码一区二区三区系列 | 蜜芽亚洲av无码一区二区三区| 无码人妻AⅤ一区二区三区| 久久精品国产一区二区三区日韩| 中文字幕一区二区三区精华液| 国产人妖在线观看一区二区| 日韩成人一区ftp在线播放| 午夜一区二区免费视频| 精品国产一区二区三区久| 福利国产微拍广场一区视频在线 | 亚洲AV乱码一区二区三区林ゆな | 亚洲熟女www一区二区三区| 亚洲熟女www一区二区三区| 无码人妻精品一区二区蜜桃 | 天堂va视频一区二区| 国模无码视频一区| 精品一区二区三区AV天堂| 亚洲人成网站18禁止一区| 亚洲乱码国产一区三区| 色老头在线一区二区三区| 国产一区二区三区韩国女主播| 怡红院一区二区三区| 国产精品乱码一区二区三区 | 亚洲精品无码一区二区| 亚洲综合一区无码精品| 爱爱帝国亚洲一区二区三区| 狠狠做深爱婷婷综合一区|