YAML Safe_Load

YAML Safe_Load
YAML to język serializacji, który może być odczytany przez ludzi i jest często używany do przechowywania danych i konfiguracji plików. Parsowanie to proces dalszego badania struktury logicznej po odczytaniu danych z pliku YAML. Kiedy plik YAML jest analizowany w Pythonie, jego zawartość jest analizowana jako słownik w Python. „„.YML ”lub„.YAML ”to dwa możliwe rozszerzenia plików dla plików YAML.

Dlaczego warto korzystać z YAML.Safe_Load Funkcja?

Istnieje wiele przypadków aplikacji Pyyaml, w których load () jest wykorzystywany zamiast safe_load (). Do tej pory celowo zatrzymaliśmy informacje o funkcji Load (). Chcieliśmy, aby wykorzystali najbezpieczniejszą technikę analizowania YAML z Pythonem, ponieważ większość osób ma zadania do wykonywania i ma tendencję do pośpiesznie kopiowania niektórych przykładowych kodów. Jeśli jednak zastanawiasz się, jak te dwa różnią się od siebie, szybka wersja jest następująca:

Jeśli znasz marynę, będziesz wiedział, że ładowanie () jest również bardzo silną funkcją. Obie techniki są niezwykle niebezpieczne, ponieważ pozwalają atakującemu uruchomić dowolny kod. Możesz uruchomić skrypt Python, w tym wywoływanie systemu operacyjnego.Biblioteka systemowa, która może uruchomić dowolne polecenie w systemie i serializować i deserializować pełne obiekty Pythona za pomocą funkcji ładowania Pyyamla. Funkcja obciążenia () jest przestarzała w najnowszych wersjach Pyyaml. Używanie go w niebezpieczny sposób spowoduje ogromne ostrzeżenie o tłuszczu. Ponieważ safe_load () zawiera po prostu część funkcji obciążenia, należy go używać, jeśli przetwarzasz zwykłe pliki YAML.

Jak używać YAML.Safe_Load Funkcja w Ubuntu

Aby użyć YAML w Ubuntu 20.04, musimy go najpierw zainstalować. Dane YAML mogą być analizowane przez różne biblioteki Python. Najpopularniejszymi i kompleksowymi ramami do analizowania YAML jest Pyyaml. Musisz użyć PIP do instalacji Pyyaml, ponieważ nie jest to element domyślnej biblioteki Python. Zainstaluj Pyyaml, uruchamiając następujące polecenie:

Przykład nr 1: Korzystanie z funkcji Safe_Load do odczytu i analizowania pliku YAML

Po zainstalowaniu Pythona i wymaganych bibliotek tworzymy dwa pliki ( .plik py i .plik YML), aby zademonstrować, w jaki sposób możemy przeanalizować plik YAML w Python. Stwórzmy „.plik py ”i nazwij to„ Hello.py ”i plik YAML jako„ konfiguracja.YAML ”.

Jak widać na poprzednim obrazie, utworzyliśmy plik YAML z adresem URL, numerem portu i wektorem liczb równych. Teraz zaimportuj moduł, jak pokazano następująco, aby wykorzystać Pyyaml ​​w skryptach. Pamiętaj, że importujesz tylko „Yaml”, a nie „Pyyaml”:

Aby to wykonać, uzyskujemy dostęp do folderu, w którym znajdują się nasze pliki. Po dotarciu do folderu piszemy Python3 wraz z nazwą pliku z rozszerzeniem.

Ten plik konfiguracyjny może być załadowany, analizowany i używany w sposób bardzo identyczny z załadowaniem JSON za pomocą pakietu Python JSON. Najpierw otwieramy plik. Yaml.funkcja safe_load () jest następnie używana do jej analizowania. Należy pamiętać, że nieznacznie zmieniliśmy wynik, aby poprawić jego czytelność dla Ciebie.

Przykład nr 2: Czytanie .Dane pliku YML z pliku YAML w Python

Aby przeanalizować ten plik w tym przykładzie, najpierw tworzymy plik YAML/YML o nazwie „Studenci.YML ”z następującymi informacjami:

Po utworzeniu „.plik YML ”, piszemy następujący skrypt Pythona, aby przeczytać„ Uczniowie.Treść sortowana plik YML ”w zależności od klawiszy. Skrypt wykorzystał funkcję safe_load () do odczytania całej zawartości „ucznia.plik yml ”. Wyjście tej metody to lista słowników w Pythonie reprezentująca treść pliku. Lista jest następnie przekształcana w strumień YAML za pomocą metody zrzutu (), która została wydrukowana.

Aby wykonać ten skrypt, piszemy Python3 wraz z nazwą pliku z rozszerzeniem.

Dane wyjściowe pokazane po uruchomieniu wyżej wspomnianego skryptu jest następujące. Każdy słownik na liście słowników Python, które zostały utworzone po przekształceniu zawartości „studentów.plik YML ”do członków YAML jest konwertowany. Domyślne ustawienie dla parametru klucza sortowania metody zrzut () jest prawdziwe. W świetle klawiszy wyjście wyświetla posortowaną zawartość YAML.1

Przykład nr 3: Czytanie wartości i kluczy z .plik YML

W tym przykładzie używamy tych samych poprzednich plików (Hello.PY i studenci.YML). Funkcja item () służy do odczytu klawiszy i ich powiązanej wartości po załadowaniu treści pliku do zmiennej odczytu. Pary wartości kluczowej zostały wydrukowane za pomocą zagnieżdżonej pętli „for”, która iterowana nad całą zawartością pliku.

Ten skrypt generuje wyniki w następujący sposób:

Po uruchomieniu wyżej wymienionego skryptu wyświetlone dane wyjściowe pojawią się. Skrypt nie używa funkcji zrzut (), dlatego zawartość pliku nie została posortowana.

Przykład nr 4: Czytanie .Dane pliku YML na liście słowników

Treść pliku YAML jest przekształcana w listę słowników w Python za pomocą metody safe_load (). Dane można również załadować z nierzetelnych źródeł za pomocą tej techniki. Aby załadować zawartość pliku YAML za pomocą metody safe_load () i drukowania załadowanej zawartości, utwórz plik Python zawierający następujący skrypt:

Poprzedni skrypt konwertuje dane „.plik YML ”na liście słowników.

Jak widać, po uruchomieniu wyżej wymienionego skryptu dane „.plik YML ”(zawierający dane studentów) jest przekonwertowany na listę słowników. Wynik zawiera listę wszystkich dostępnych słowników.

Wniosek

W tym artykule pokazano wiele metod czytania treści YAML z plików i obiektów Pythona przy użyciu różnych przykładów. W tym poście omówiliśmy pliki YAML i różne metody analizowania ich za pomocą safe_load (), która jest wbudowaną funkcją YAML. W przykładach tego samouczka staraliśmy się nauczyć cię czytać i analizować „.plik YML ”, odczytywanie wartości i kluczy z„.plik YML ”i przekonwertuj„.Dane pliku YML ”na liście słowników za pomocą funkcji safe_load ().