Python – Json 資料格式

Loading

測試環境為 CentOS 8 x86_64 (虛擬機)

Python 的資料格式是沒有 JSON (JavaScript Object Notation , 輕量級資料交換語言), JSON 格式如下:

{
     "CPU" :"Intel",
     "MEM":["Hynix 16G","Hynix 16G"] ,
     "Disk":"Samsung"
}

這格式跟 Python 的 dict ( dictionary )資料型態物件類似,資料一樣由 key (鍵值,可使用 括字串(str),整數(int)與浮點數(float) ) + Value (值,可以為任何東西),定義使用大括號{} 來表示為 dic ,格式為 key:valu ( pair 組成 並由逗點隔開) 如下.

Computer1={"CPU":"Intel" , "MEM":["Hynix 16G","Hynix 16G"] , "Disk":"Samsung"}
[root@localhost ~]# python3
Python 3.6.8 (default, Mar 25 2022, 11:15:52)
[GCC 8.5.0 20210514 (Red Hat 8.5.0-10)] on linux
Type "help", "copyright", "credits" or "license" for more information.

從網路上抓資料的傳輸格式大部分是使用 JSON 格式,對 Python 而言就是字串 String ,我們可透過 json 套件將資料從 Json(str) <-> dict 做轉換.

  • json.dumps()
    將 python 物件轉換為 Json 字串(string)
    dict -> json(string)

    >>> import json
    >>> dict1={"CPU":"Intel" , "MEM":["Hynix 16G","Hynix 16G"] , "Disk":"Samsung"}
    >>> type(dict1)
    <class 'dict'>
    
    >>> json1=json.dumps(dict1)
    >>> json1
    '{"CPU": "Intel", "MEM": ["Hynix 16G", "Hynix 16G"], "Disk": "Samsung"}'
    >>> type(json1)
    <class 'str'>
    

    使用參數 indent 會更容易閱讀(會加上換行字元 \n 與 數字代表縮排格數),下面來看差別.

    • indent=0
      >>> print(json.dumps(dict1 , indent=0))
      {
      "CPU": "Intel",
      "MEM": [
      "Hynix 16G",
      "Hynix 16G"
      ],
      "Disk": "Samsung"
      }
      
    • indent=1
      >>> print(json.dumps(dict1 , indent=1))
      {
       "CPU": "Intel",
       "MEM": [
        "Hynix 16G",
        "Hynix 16G"
       ],
       "Disk": "Samsung"
      }
      
    • indent=4
      >>> print(json.dumps(dict1 , indent=4))
      {
          "CPU": "Intel",
          "MEM": [
              "Hynix 16G",
              "Hynix 16G"
          ],
          "Disk": "Samsung"
      }
      

    list -> json(string)

    >>> list1=[1 , 2, "str1"]
    >>> type(list1)
    <class 'list'>
    

    list 會被轉成 Json 的陣列.

    >>> json2=json.dumps(list1)
    >>> json2
    '[1, 2, "str1"]'
    >>> type(json2)
    <class 'str'>
    
  • json.loads()
    將 json 字串 (string) 轉換為 python 物件

    >>> str1='{"CPU":"Intel" , "MEM":["Hynix 16G","Hynix 16G"] , "Disk":"Samsung"}'
    >>> type(str1)
    <class 'str'>
    
    >>> dict2=json.loads(str1)
    >>> dict2
    {'CPU': 'Intel', 'MEM': ['Hynix 16G', 'Hynix 16G'], 'Disk': 'Samsung'}
    >>> type(dict2)
    <class 'dict'>
    
沒有解決問題,試試搜尋本站其他內容

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料