logo

Python で YAML ファイルを解析する

YAML は、Yet Another Markup Language の略語、または YAML はデータ交換に使用されるデータ形式であるマークアップ言語ではありません。 YAML はデータのみを保存でき、コマンドは保存できません。これは、XML および JSON データ形式に似ています。この記事では、例とともに Python での YAML ファイルの解析の概念を詳しく説明します。

Python での YAML ファイルの解析

PyYAML Python プログラミングのモジュールは、Python のパーサーと見なされます。このライブラリを使用すると、YAML ファイルの読み取りや書き込みなど、YAML ファイルに対してさまざまな操作を実行できます。 YAML データのシリアル化と永続化は、Python のこの PyYAML モジュールを使用して行うこともできます。

PyYAML モジュールを使用するには、次の場所にインストールする必要があります。 パイソン 以下のコマンドを実行します。



pip install pyyaml>

YAML ファイルは 2 つの異なる拡張子を使用して保存されます。 .yaml そして .yml 。 YAML ファイルを解析する必要があるため、次のデータで構成される 2 つの YAML ファイルを作成しました。 キー: 値 ペア。この記事では、次の YAML ファイルを例として取り上げます。

geeksforgeek.yml

UserName: techcodeview.com Password: GFG@123 Phone: 1234567890 Website: techcodeview.com Skills:  -Python  -SQL  -Django  -Javascript>

multi_docs.yml

--- UserName: techcodeview.com Password: GFG@123 Phone: 1234567890 Website: techcodeview.com Skills:  -Python  -SQL  -Django  -Javascript ... --- UserName: Google Password: google@123 Phone: 1234567890 Website: google.com Skills:  -Python  -SQL  -Django  -Javascript ... --- UserName: Yahoo Password: yahoo@123 Phone: 1234567890 Website: yahoo.com Skills:  -Python  -SQL  -Django  -Javascript>

ここで、Python で YAML ファイルを解析するために使用できるいくつかのメソッドを見てみましょう。

load() 関数の使用

YAML モジュールの yaml.load() 関数は、YAML データまたはオブジェクトを Python辞書 。膨大な数のキーと値のペア (構成ファイル) で構成される YAML データが存在する場合があるため、これらのファイルを読み取るには、YAML データの Python への逆シリアル化を実行するload() 関数が役立ちます。の ローダ load() 関数のパラメータは次のように設定されます。 セーフローダー , YAML のデータを安全にロードすることを目的としています。これは、入力が信頼できないソースから取得されるシナリオで役立ちます。

Python3




100万分の10
import> yaml> with>open>(>'geeksforgeeks.yml'>,>'r'>) as f:> >data>=> yaml.load(f, Loader>=>yaml.SafeLoader)> > # Print the values as a dictionary> print>(data)>

>

>

出力:

{'UserName': 'techcodeview.com', 'Password': 'GFG@123', 'Phone': 1234567890,  'Website': 'techcodeview.com>

full_load() 関数の使用

yaml.full_load() 関数は、YAML ファイルの内容をキーと値のペアの形式で解析するために使用されます。次にPythonを使用します 得る() メソッドを使用すると、YAML ファイルから特定のデータを取得できます。

Python3




import> yaml> with>open>(>'geeksforgeeks.yml'>,>'r'>) as f:> >data>=> yaml.full_load(f)> > # Print the values as a dictionary> output>=> {> >'UserName'>: data.get(>'UserName'>),> >'Password'>: data.get(>'Password'>),> >'phone'>: data.get(>'Phone'>),> >'Skills'>:>' '>.join(data.get(>'Skills'>, []))> }> print>(output)>

>

>

出力:

{'UserName': 'techcodeview.com', 'Password': 'GFG@123', 'phone': 1234567890,  'Skills': '- P y t h o n - S Q L - D j a n g o - J a v a s c r i p t'}>

safe_load() 関数の使用

Python で YAML ファイルをロードするもう 1 つの方法は、safe_load() メソッドを使用することです。データが信頼できないソースからロードされる場合、load() メソッドの SafeLoader パラメータの代わりに使用できます。

Python3




import> yaml> with>open>(>'geeksforgeeks.yml'>) as f:> >dict> => yaml.safe_load(f)> >print>(>dict>)>

>

>

出力:

{'UserName': 'techcodeview.com', 'Password': 'GFG@123 *', 'phone': 987909890,  'website': 'techcodeview.com 'Skills': '-Python -SQL -Django -Rest Framework -JavaScript'}>

load_all() 関数の使用

load_all() メソッドは、単一のファイルに存在する YAML ドキュメントをロードする場合に使用されます。の ローダ load() 関数のパラメータは次のように設定されます。 セーフローダー , YAML のデータを安全にロードすることを目的としています。これは、入力が信頼できないソースから取得されるシナリオで役立ちます。

Python3




import> yaml> from> yaml.loader>import> SafeLoader> # open yaml file in read> with>open>(>'multiple_documents.yml'>,>'r'>) as f:> >yaml_data>=> list>(yaml.load_all(f, Loader>=>SafeLoader))> >print>(yaml_data)>

>

Javaのrepl

>

出力:

[{'UserName': 'techcodeview.com', 'Password': 'GFG@123', 'Phone': 1234567890,  'Website': 'techcodeview.com {'UserName': 'Google', 'Password': 'google@123', 'Phone': 1234567890,  'Website': 'google.com', 'Skills': '-Python -SQL -Django -Resst Framework -Javascript'},  {'UserName': 'Yahoo', 'Password': 'yahoo@123', 'Phone': 1234567890,  'Website': 'yahoo.com', 'Skills': '-Python -SQL -Django -Resst Framework -Javascript'}]>