Denken Sie an Yaml mit Python

Was ist Yaml?

Vorwort

Beim Einrichten einer Cloud-nativen Umgebung wie Kubernetes werden häufig Dateien im Yaml-Format gelesen. Ich dachte, es wäre eine gute Idee, es zu verwenden, ohne Yaml gut zu kennen, also lernte ich diesmal tatsächlich, während ich meine Hände bewegte.

Herkunft der Yamswurzel

Von der offiziellen Yamam-Website 「“YAML Ain’t Markup Language” 」

Es ist eine Möglichkeit, eine Datenstruktur zu schreiben, die durch ein wiederkehrendes Akronym dargestellt wird, das "yaml ist keine Auszeichnungssprache" bedeutet.

Designziel

YAML hat die folgenden sieben Designziele.

  1. YAML ist für Menschen leicht und leicht zu lesen
  2. YAML-Daten können zwischen Programmiersprachen portiert werden
  3. YAML entspricht der nativen Datenstruktur der agilen Sprache
  4. YAML verfügt über ein konsistentes Modell zur Unterstützung generischer Tools
  5. YAML unterstützt die Verarbeitung in einem Durchgang
  6. YAML ist ausdrucksstark und erweiterbar
  7. Einfache Implementierung und Verwendung von YAML

laden und entleeren

Beim Umgang mit Yaml-Daten gibt es Load and Dump. Laden ist der Fluss, in dem das Programm Yaml-Daten versteht, während Dump der Fluss ist, in dem das Programm sie in Yaml-Daten konvertiert. Mit anderen Worten, es ist in Ordnung, wenn Sie verstehen, dass die Eingabe von yaml "load" und die Ausgabe von yaml "dump" ist, wenn Sie sie in der App anzeigen. 公式サイト「3.1 Processing Overview」より Von der offiziellen Website "3.1 Verarbeitungsübersicht"

Versuchen Sie, mit Python zu implementieren

Bewegen Sie tatsächlich Ihre Hände und denken Sie nach. Dieses Mal werde ich mit yaml umgehen und Python3 als Programmiersprache verwenden.

Installation von Pyyaml

Es gibt ein Paket namens pyyaml, um yaml mit Python zu verwenden. Mit pip installieren. pip install pyyaml

Schreiben Sie tatsächlich den Code

Schreiben und überprüfen Sie den Code für das Laden von yaml und den Dump, der yaml ausgibt. Die Umgebung, die ich ausprobiert habe, ist wie folgt.

1. Laden Sie Yaml-Daten mit Python (Laden)

Bereiten Sie eine Yaml-Datei für den Test vor

Erstellen Sie eine Yaml-Datei (test.yaml) wie folgt.

test.yaml


env:
  python:3.7.3
  pyYAML:5.3.1

Holen Sie sich die Versionsinformationen in yaml mit Python geschrieben.

Schreiben Sie Code in Python

Erstellen Sie Python-Code (data-reader.py), um yaml im selben Ordner wie test.yaml zu lesen.

data-reader.py


#!/usr/bin/env python3
from yaml import load, dump
try:
    from yaml import CLoader as Loader, CDumper as Dumper
except ImportError:
    from yaml import Loader, Dumper

with open('test.yaml', 'r') as yml:
    config = load(yml, Loader=Loader)

print("#### data_chcek ####")
print(config)
print("####################")

print("Software/Paketnamen:Erhaltene Version")
print("python: {}".format(config['env']['python']))
print("pyYAML: {}".format(config['env']['pyYAML']))
Ausführungsergebnis

Ich habe das Terminal geöffnet und den Python-Code wie folgt ausgeführt. Es wurde bestätigt, dass die von yaml erfassten Daten in einen mehrschichtigen Wörterbuchtyp konvertiert wurden und die gewünschten Versionsinformationen abgerufen werden konnten.

$ python3 data-reader.py 
#### data_chcek ####
{'env': {'python': '3.7.3', 'pyYAML': '5.3.1'}}
####################
Software/Paketnamen:Erhaltene Version
python: 3.7.3
pyYAML: 5.3.1

2. Geben Sie die von Python erstellten Daten in eine Yaml-Datei aus (Dump).

Schreiben Sie Code in Python

Erstellen Sie Daten vom Typ Wörterbuch als Beispiel, konvertieren Sie die erstellten Daten in das Yaml-Format und geben Sie sie aus. Ich habe den Python-Code (data-writer.py) wie folgt erstellt.

data-writer.py


#!/usr/bin/env python3
from yaml import load, dump
try:
    from yaml import CLoader as Loader, CDumper as Dumper
except ImportError:
    from yaml import Loader, Dumper

# making data for yaml
item_list = ['apple', 'banana', 'orange']
amounts = [2, 3, 4]
sample_data = {item:value for item, value in zip(item_list, amounts)}

# data output to yaml
output = dump(sample_data, Dumper=Dumper)

with open("output_file.yaml", 'w') as yml:
    yml.write(output)
Ausführungsergebnis

Öffnen Sie das Terminal und führen Sie den Python-Code wie folgt aus. Als Ergebnis der Ausführung wurde bestätigt, dass die im Beispiel erstellten Wörterbuchtypdaten in das Yaml-Format konvertiert wurden.

$ python3 data-writer.py
#### data_check ####
apple: 2
banana: 3
orange: 4

####################
output to output_file.yaml

Sie können den Inhalt der Ausgabedatei unten überprüfen.

$ cat output_file.yaml                        
apple: 2
banana: 3
orange: 4

Zusammenfassung

Über Yaml habe ich das Dokument gelesen und das Verhalten beim eigentlichen Schreiben des Codes bestätigt. In Zukunft möchte ich mein Wissen über Yaml vertiefen und dabei sowohl auf das Laden als auch auf das Abladen achten.

Recommended Posts

Denken Sie an Yaml mit Python
Umgang mit Yaml mit Python
Vervollständigen Sie YAML-Inhalte automatisch mit Python
FizzBuzz in Python3
Scraping mit Python
Statistik mit Python
Scraping mit Python
Python mit Go
Twilio mit Python
In Python integrieren
Spielen Sie mit 2016-Python
AES256 mit Python
Getestet mit Python
Python beginnt mit ()
mit Syntax (Python)
Bingo mit Python
Zundokokiyoshi mit Python
Excel mit Python
Mikrocomputer mit Python
Mit Python besetzen
Serielle Kommunikation mit Python
Zip, entpacken mit Python
Django 1.11 wurde mit Python3.6 gestartet
Primzahlbeurteilung mit Python
Python mit Eclipse + PyDev.
Socket-Kommunikation mit Python
Datenanalyse mit Python 2
Scraping in Python (Vorbereitung)
Python lernen mit ChemTHEATER 03
Sequentielle Suche mit Python
Führen Sie Python mit VBA aus
Löse AtCoder 167 mit Python
Serielle Kommunikation mit Python
[Python] Verwenden Sie JSON mit Python
Python lernen mit ChemTHEATER 05-1
Lerne Python mit ChemTHEATER
Führen Sie prepDE.py mit python3 aus
1.1 Erste Schritte mit Python
Tweets mit Python sammeln
Binarisierung mit OpenCV / Python
3. 3. KI-Programmierung mit Python
Kernel-Methode mit Python
Nicht blockierend mit Python + uWSGI
Scraping mit Python + PhantomJS
Tweets mit Python posten
Verwenden Sie Mecab mit Python 3
[Python] Mit CGIHTTPServer umleiten
Kinesis mit Python betreiben
Erste Schritte mit Python
Verwenden Sie DynamoDB mit Python
Zundko Getter mit Python
Behandle Excel mit Python
Ohmsches Gesetz mit Python
Primzahlbeurteilung mit Python
Führen Sie Blender mit Python aus
Löse Mathe mit Python
Python ab Windows 7
Heatmap von Python + matplotlib
Asynchron mit Python verarbeiten
Python-Programmierung mit Atom
Python lernen mit ChemTHEATER 02