<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # Python SimpleJson 教程 > 原文: [http://zetcode.com/python/simplejson/](http://zetcode.com/python/simplejson/) Python SimpleJson 教程展示了如何使用 Python SimpleJson 模塊讀取和寫入 JSON 數據。 ## JSON 格式 JSON(JavaScript 對象表示法)是一種輕量級的數據交換格式。 它很容易被人讀寫,也可以由機器解析和生成。 `application/json`是 JSON 的官方互聯網媒體類型。 JSON 文件擴展名是`.json`。 ## SimpleJson 模塊 SimpleJson 是適用于 Python 2.5+和 Python 3.3+的簡單,快速,完整且可擴展的 JSON 編碼器和解碼器。 它是沒有依賴項的純 Python 代碼。 SimpleJson 模塊包含在現代 Python 版本中。 解碼器可以處理任何指定編碼的傳入 JSON 字符串(默認為 UTF-8) ## 使用 SimpleJson ```py import json ``` 要使用 SimpleJson 模塊,我們導入`json`。 ## SimpleJson 轉換表 下表顯示了如何在 Python 和 JSON 之間轉換數據類型。 | Python | JSON 格式 | | --- | --- | | 字典,命名元組 | 對象 | | 列表,元組 | 數組 | | `str`,`unicode` | 字符串 | | `int`,`long`,`float` | 數字 | | `True` | `true` | | `False` | `false` | | `None` | `null` | ## `json.dump()` `json.dump()`方法將 Python 對象作為 JSON 格式的流序列化到文件對象。 `simplejson_dump.py` ```py #!/usr/bin/python import json data = {"name": "Jane", "age": 17} with open('friends.json', 'w') as f: json.dump(data, f) ``` 該示例使用`json.dump()`方法將 Python 字典序列化為 JSON。 JSON 數據被寫入`friends.json`文件。 ```py $ cat friends.json {"age": 17, "name": "Jane"} ``` 執行腳本后,我們得到了這些數據。 ## `json.dumps()` `json.dumps()`方法將 Python 對象序列化為 JSON 字符串。 `simplejson_dumps.py` ```py #!/usr/bin/python import json data = [{"name": "Jane", "age": 17}, {"name": "Thomas", "age": 27}] json_data = json.dumps(data) print(repr(json_data)) ``` 該示例使用`json.dumps()`方法將 Python 列表序列化為 JSON 字符串。 JSON 數據被打印到控制臺。 ```py $ ./simplejson_dumps.py '[{"name": "Jane", "age": 17}, {"name": "Thomas", "age": 27}]' ``` 這是示例的輸出。 ## `json.load()` `json.load()`方法將包含 JSON 文檔的文件對象反序列化為 Python 對象。 `config.json` ```py { "theme" : "bluespring", "size": "small", "splashscreen": "false" } ``` `config.json`文件包含此數據。 `read_config.py` ```py #!/usr/bin/python import json with open('config.json') as f: config = json.load(f) print('Theme: {}'.format(config['theme'])) print('Size: {}'.format(config['size'])) print('Splash screen: {}'.format(config['splashscreen'])) ``` 該示例使用`json.load()`從`config.json`文件讀取配置數據,并將數據打印到終端。 ```py $ ./read_config.py Theme: bluespring Size: small Splash screen: false ``` 這是輸出。 ## `json.loads()` `json.loads()`方法將 JSON 字符串反序列化為 Python 對象。 `simplejson_loads.py` ```py #!/usr/bin/python import json json_data = '{"name": "Jane", "age": 17}' data = json.loads(json_data) print(type(json_data)) print(type(data)) print(data) ``` 該示例將 JSON 字符串反序列化為 Python 字典。 ```py $ ./simple.py <class 'str'> <class 'dict'> {'name': 'Jane', 'age': 17} ``` 這是示例的輸出。 ## SimpleJson 從 URL 讀取 JSON 以下示例從網頁讀取 JSON 數據。 我們從`http://time.jsontest.com`獲得 JSON 數據。 ```py $ curl http://time.jsontest.com { "time": "10:00:19 AM", "milliseconds_since_epoch": 1496311219347, "date": "06-01-2017" } ``` 對此站點的 GET 請求返回此 JSON 字符串。 `parse_json_url.py` ```py #!/usr/bin/python import json import urllib.request hres = urllib.request.urlopen('http://time.jsontest.com') data = json.loads(hres.read().decode("utf-8")) print('Unix time: {}'.format(data['milliseconds_since_epoch'])) print('Time: {}'.format(data['time'])) print('Date: {}'.format(data['date'])) ``` 在該示例中,我們使用`urllib.request`模塊創建對網站的請求。 ```py data = json.loads(hres.read().decode("utf-8")) ``` 從返回的響應中,我們使用`json.loads()`方法將 JSON 字符串轉換為 Python 字典。 ```py print('Unix time: {}'.format(data['milliseconds_since_epoch'])) print('Time: {}'.format(data['time'])) print('Date: {}'.format(data['date'])) ``` 借助 Python 的`format()`方法,我們將檢索到的數據打印到控制臺。 ```py $ ./parse_json_url.py Unix time: 1496311518866 Time: 10:05:18 AM Date: 06-01-2017 ``` 這是輸出。 ## 精美打印 使用 SimpleJson,我們可以輕松精美打印數據。 `pretty_print_json.py` ```py #!/usr/bin/python import json json_data = {"name":"Audi", "model":"2012", "price":22000, "colours":["gray", "red", "white"]} data = json.dumps(json_data, sort_keys=True, indent=4 * ' ') print(data) ``` 使用`sort_keys`和`indent`選項,我們可以很好地格式化 JSON 數據。 ```py $ ./pretty_print_json.py { "colours": [ "gray", "red", "white" ], "model": "2012", "name": "Audi", "price": 22000 } ``` 這是示例的輸出。 數據縮進并對鍵進行排序。 ## SimpleJson 自定義類 SimpleJson 僅序列化和反序列化一些 Python 對象,這些對象在轉換表中列出。 對于自定義 Python 對象,我們需要執行一些附加步驟。 `custom_class.py` ```py #!/usr/bin/python import json class Person(object): def __init__(self, name, age): self.name = name self.age = age p = Person("Lucy", 23) json_data = json.dumps(p.__dict__) print(repr(json_data)) ``` 在此示例中,我們將自定義對象序列化為 JSON。 ```py json_data = json.dumps(p.__dict__) ``` 訣竅是使用`__dict__`屬性,該屬性存儲對象屬性(名稱和年齡)。 ```py $ ./custom_class.py '{"name": "Lucy", "age": 23}' ``` 這是輸出。 ## 自定義類的 SimpleJson 列表 在下一個示例中,我們顯示如何序列化自定義類的列表。 `custom_class_list.py` ```py #!/usr/bin/python import json class Person(object): def __init__(self, name, age): self.name = name self.age = age def toJson(self): ''' Serialize the object custom object ''' return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) p1 = Person("Lucy", 23) p2 = Person("Thomas", 29) people = [] people.append(json.loads(p1.toJson())) people.append(json.loads(p2.toJson())) json_data = json.dumps(people) print(repr(json_data)) ``` 我們創建了一個`toJson()`方法來序列化該對象。 ```py people = [] people.append(json.loads(p1.toJson())) people.append(json.loads(p2.toJson())) ``` 將對象添加到列表時,我們將調用`toJson()`方法。 ```py $ ./custom_class_list.py '[{"age": 23, "name": "Lucy"}, {"age": 29, "name": "Thomas"}]' ``` 這是示例的輸出。 在本教程中,我們使用了 Python SimpleJson 庫。 您可能也會對以下相關教程感興趣: [Python 教程](/lang/python/), [Python 列表推導式](/articles/pythonlistcomprehensions/), [Pyquery 教程](/python/pyquery), [OpenPyXL 教程](/articles/openpyxl/),[Python Requests 教程和 [Python CSV 教程](/python/csv/)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看