網路上很多資料的傳輸格式都是使用json
所以對於json資料處理就很重要啦!

JSON(JavaScript Object Notation)輕量級的資料交換語言,容易閱讀的文字為主,用來傳輸由屬性值或者序列性的值組成的資料物件。

JSON格式:

  • 陣列(array)用中括號 [ ]
    [0,5,6,2,7,8,4]
    
  • 物件(object)用大括號 { }
    key-value的方式儲存
  • "id": 123, "Name": "wsrsw", "Email": "wsrsw@example.com", "contents": [ "subject":"Math", "score":80 "subject":"English", "score":90

    JSON 模組

    json是現有REST API的主流形式。json的編碼和解碼在python 中可以透過json套件完成。
    json與python資料類型轉換關係表:

    Python 需要使用json模塊的loads()

    import json
    str1 = '{"id": 123, "Name": "wsrsw", "Email": "wsrsw@example.com"}'
    j = json.loads(str1)
    print(j)
    print(type(j))
    
    {'id': 123, 'Name': 'wsrsw', 'Email': 'wsrsw@example.com'}
    <class 'dict'>
    

    dict轉JSON字串

    python物件轉json字串
    需要使用json模塊的dumps()

    import json
    j = {'id': 123, 'Name': 'wsrsw', 'Email': 'wsrsw@example.com'}
    str1 = json.dumps(j)
    print(str1)
    print(type(str1))
    
    {"id": 123, "Name": "wsrsw", "Email": "wsrsw@example.com"}
    <class 'str'>
    

    dict包含list轉JSON字串

    可以使用indent => 可以使得數據存儲的格式容易解讀。

    import json
    python_dict = {"id":[1,2,3], "name": ["Tim", "Bob", "Lucy"]}
    print(python_dict, type(python_dict))
    #轉成json字串
    j = json.dumps(python_dict, indent = 4)
    print(j, type(j))
    
    {'id': [1, 2, 3], 'name': ['Tim', 'Bob', 'Lucy']} <class 'dict'>
        "id": [
        "name": [
            "Tim",
            "Bob",
            "Lucy"
    } <class 'str'>
    

    json.dumps()
    將python物件轉成json字串,返回type為str
    從python物件轉換為json字串

    json.loads()
    將json字串,返回python物件,返回type為dict
    從json字串轉換為python物件

    王者歸來:精通物聯網及Python / 作者: 劉凱

  •