乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Python 進(jìn)階(九):JSON 基本操作

       文炳春秋 2020-03-13

      1. 概述

      JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式,它具有簡潔、清晰的層次結(jié)構(gòu),易于閱讀和編寫,還可以有效的提升網(wǎng)絡(luò)傳輸效率。Python 標(biāo)準(zhǔn)庫的 json 模塊可以用來處理 JSON 格式數(shù)據(jù)的基本操作。

      2. 使用

      json 模塊主要提供了 dump、dumps、load、loads 方法對 JSON 數(shù)據(jù)進(jìn)行編解碼。

      2.1 dumps

      json 模塊的 dumps 方法可以將 Python 對象轉(zhuǎn)為 JSON 格式字符串,以字典格式為例,看個示例:

      import json
      
      d = {'id':'001', 'name':'張三', 'age':'20'}
      j = json.dumps(d, ensure_ascii=False)
      print(j)
      

      執(zhí)行結(jié)果:

      {"id": "001", "name": "張三", "age": "20"}
      

      我們發(fā)現(xiàn)上面的輸出結(jié)果并不是格式化的 JSON,dumps 方法還可以對數(shù)據(jù)進(jìn)行格式化,如下所示:

      import json
      
      d = {'id':'001', 'name':'張三', 'age':'20'}
      j = json.dumps(d, ensure_ascii=False, sort_keys=True, indent=4, separators=(',', ': '))
      print(j)
      

      執(zhí)行結(jié)果:

      {
          "age": "20",
          "id": "001",
          "name": "張三"
      }
      

      當(dāng)然,除了字典類型外,其他一些 Python 類型也可轉(zhuǎn)成 JSON 格式的字符串,它們之間有對應(yīng)關(guān)系如下所示:

      Python JSON
      dict object
      list, tuple array
      str string
      iint, float, int 和 float 派生的枚舉 number
      True true
      False false
      None null

      再來看一下如何將 JSON 數(shù)據(jù)寫入文件:

      import json
      
      d = {'id':'001', 'name':'張三', 'age':'20'}
      j = json.dumps(d, ensure_ascii=False, sort_keys=True, indent=4, separators=(',', ': '))
      with open('test.json', 'w', encoding='utf-8') as f:
          f.write(j)
      

      2.2 dump

      json 模塊的 dump 方法可以將 Python 對象序列化為 JSON 格式化流形式的文件類對象。

      如果我們需要將數(shù)據(jù)寫到文件里的時候,dump 方法會比 dumps 方法方便一點(diǎn),看一下示例:

      import json
      
      d = {'id':'001', 'name':'張三', 'age':'20'}
      with open('test.json', 'w', encoding='utf-8') as f:
          json.dump(d, f, indent=4, ensure_ascii=False)
      

      如果我們需要的數(shù)據(jù)格式為 JSON 格式字符串時,比如:將數(shù)據(jù)存入數(shù)據(jù)庫,這時則需要用 dumps 方法。

      2.3 loads

      json 模塊的 loads 方法可以將 JSON 格式數(shù)據(jù)轉(zhuǎn)為 Python 對象,看個示例:

      import json
      
      j = '{"id":"001", "name":"張三", "age":"20"}'
      d = json.loads(j)
      print(d)
      

      執(zhí)行結(jié)果:

      {'id': '001', 'name': '張三', 'age': '20'}
      

      兩者之間轉(zhuǎn)換的對應(yīng)關(guān)系如下所示:

      JSON Python
      object dict
      array list
      string str
      number (int) int
      number (real) float
      true True
      false False
      null None

      我們再來讀取一下之前生成的 test.json 中數(shù)據(jù)并將其轉(zhuǎn)為 Python 對象,如下所示:

      import json
      
      with open('test.json', encoding='utf-8') as f:
          data = f.read()
          print(json.loads(data))
      

      執(zhí)行結(jié)果:

      {'id': '001', 'name': '張三', 'age': '20'}
      

      2.4 load

      json 模塊的 load 方法將文件類對象轉(zhuǎn)為 Python 對象,看個示例:

      import json
      
      with open('test.json', encoding='utf-8') as f:
          print(json.load(f))
      

      執(zhí)行結(jié)果:

      {'id': '001', 'name': '張三', 'age': '20'}
      

      我們可以看出 load 方法傳的參數(shù)是文件對象,而 loads 方法參數(shù)傳的是字符串。


        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多