<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # Python YAML 教程 > 原文: [http://zetcode.com/python/yaml/](http://zetcode.com/python/yaml/) Python YAML 教程展示了如何在 Python 中使用 YAML 格式。 我們使用 PyYAML 模塊。 ## YAML 格式 YAML(不是 YAML 標記語言)是一種人類可讀的數據序列化語言。 它通常用于配置文件,但也用于數據存儲(例如調試輸出)或傳輸(例如文檔標題)。 YAML 本機支持三種基本數據類型:標量(例如字符串,整數和浮點數),列表和關聯數組。 官方推薦的 YAML 文件擴展名是`.yaml`。 Python 中有兩個用于 YAML 的模塊:PyYAML 和`ruamel.yaml`。 在本教程中,我們使用前者。 ## PyYAML PyYAML 是 Python 的 YAML 解析器和發射器。 ```py $ pip install pyyaml ``` 該模塊通過 pip 安裝。 ## YAML 文件 在本教程中,我們使用以下 YAML 文件: `items.yaml` ```py raincoat: 1 coins: 5 books: 23 spectacles: 2 chairs: 12 pens: 6 ``` 我們有幾個標量值。 `data.yaml` ```py cities: - Bratislava - Kosice - Trnava - Moldava - Trencin --- companies: - Eset - Slovnaft - Duslo Sala - Matador Puchov ``` 我們在`data.yaml`中有兩個文檔。 文件用`---`分隔。 ## Python YAML 讀取 在第一個示例中,我們讀取了一個 YAML 文件。 `read_yaml.py` ```py #!/usr/bin/env python3 import yaml with open('items.yaml') as f: data = yaml.load(f, Loader=yaml.FullLoader) print(data) ``` 我們打開`items.yaml`文件,并使用`yaml.load()`方法加載內容。 數據被打印到控制臺。 ```py $ python read_yaml.py {'raincoat': 1, 'coins': 5, 'books': 23, 'spectacles': 2, 'chairs': 12, 'pens': 6} ``` PyYAML 模塊將標量值轉換為 Python 字典。 ## Python YAML 閱讀文檔 使用`load_all()`讀取多個 YAML 文檔。 `read_docs.py` ```py #!/usr/bin/env python3 import yaml with open('data.yaml') as f: docs = yaml.load_all(f, Loader=yaml.FullLoader) for doc in docs: for k, v in doc.items(): print(k, "->", v) ``` 該示例從`data.yaml`文件中讀取兩個文檔。 ```py $ python read_docs.py cities -> ['Bratislava', 'Kosice', 'Trnava', 'Moldava', 'Trencin'] companies -> ['Eset', 'Slovnaft', 'Duslo Sala', 'Matador Puchov'] ``` 這是輸出。 ## Python YAML 轉儲 `dump()`方法將 Python 對象序列化為 YAML 流。 `dumping.py` ```py #!/usr/bin/env python3 import yaml users = [{'name': 'John Doe', 'occupation': 'gardener'}, {'name': 'Lucy Black', 'occupation': 'teacher'}] print(yaml.dump(users)) ``` 在示例中,我們有一個字典列表。 我們使用`dump()`方法將列表序列化為 YAML 格式。 ```py $ python dumping.py - name: John Doe occupation: gardener - name: Lucy Black occupation: teacher ``` 這是輸出。 ## Python YAML 寫入 以下示例將 Python 數據寫入 YAML 文件。 `writing.py` ```py #!/usr/bin/env python3 import yaml users = [{'name': 'John Doe', 'occupation': 'gardener'}, {'name': 'Lucy Black', 'occupation': 'teacher'}] with open('users.yaml', 'w') as f: data = yaml.dump(users, f) ``` 該示例將字典列表寫入`users.yaml`文件。 ```py data = yaml.dump(users, f) ``` 我們使用`dump()`方法寫入數據。 第一個參數是數據,第二個參數是文件對象。 ## Python YAML 排序鍵 我們可以使用`dump`的`sort_keys`參數對鍵進行排序。 `sort_keys.py` ```py #!/usr/bin/env python3 import yaml with open('items.yaml') as f: data = yaml.load(f, Loader=yaml.FullLoader) print(data) sorted = yaml.dump(data, sort_keys=True) print(sorted) ``` 該示例從`items.yaml`文件中讀取數據,并通過 YAML 輸出中的鍵對數據進行排序。 ```py $ python sort_keys.py {'raincoat': 1, 'coins': 5, 'books': 23, 'spectacles': 2, 'chairs': 12, 'pens': 6} books: 23 chairs: 12 coins: 5 pens: 6 raincoat: 1 spectacles: 2 ``` 這是輸出。 ## 記號 解析 YAML 文件時,我們可以使用較低級別的 API。 `scan()`方法掃描 YAML 流并生成掃描記號。 `tokens.py` ```py #!/usr/bin/env python3 import yaml with open('items.yaml') as f: data = yaml.scan(f, Loader=yaml.FullLoader) for token in data: print(token) ``` 該示例掃描 YAML 文件并打印記號。 ```py $ python tokens.py StreamStartToken(encoding=None) BlockMappingStartToken() KeyToken() ScalarToken(plain=True, style=None, value='raincoat') ValueToken() ScalarToken(plain=True, style=None, value='1') KeyToken() ScalarToken(plain=True, style=None, value='coins') ValueToken() ScalarToken(plain=True, style=None, value='5') KeyToken() ScalarToken(plain=True, style=None, value='books') ValueToken() ScalarToken(plain=True, style=None, value='23') KeyToken() ScalarToken(plain=True, style=None, value='spectacles') ValueToken() ScalarToken(plain=True, style=None, value='2') KeyToken() ScalarToken(plain=True, style=None, value='chairs') ValueToken() ScalarToken(plain=True, style=None, value='12') KeyToken() ScalarToken(plain=True, style=None, value='pens') ValueToken() ScalarToken(plain=True, style=None, value='6') BlockEndToken() StreamEndToken() ``` 這是輸出。 在本教程中,我們使用 Python 中的 YAML 格式。 您可能也對以下相關教程感興趣: [Python 字符串](/lang/python/strings/), [Python Jinja 教程](/python/jinja/)和 [Python 教程](/lang/python/),或列出[所有 Python 教程](/all/#python) 。
                  <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>

                              哎呀哎呀视频在线观看