Python: Yang Model を XML / JSON 形式へ変換

今回は Yang Model を Python で XML / JSON へ変換する方法を紹介したいと思います。Yang Model を使って Netconf 等でネットワーク機器を操作したり、情報を取ったりというのが流行りですが、Python のスクリプト内でも Yang Model のデータを扱うために XML や JSON へ変換したい場合があったので、試してみました。

Yang Model を Git でゲットする

まずは Linux 上で Git を使って Yang Model のレポジトリをクローンして Yang Model をゲットします。

すると yang ディレクトリが作成され、その配下にファイルができたことが確認できます。

まずは Yang Model を XML へ変換する

今回はまだドラフトですが、日本では人気のない IS-IS の Yang Model を変換してみたいと思います。まずはファイルがある場所へ移動します。

pyang を使って XML へ変換します。pyang をまだインストールしていない場合は、pip でインストールします。

pyang の -f yin オプションを使って XML 変換します。warning や error も出てますが、とりあえず無視します。

実際には下記のようにリダイレクトしてファイルへ保存します。

以上で Yang Model -> XML への変換は完了です。

次は XML -> JSON 変換

先ほど保存した XML 形式のファイルを使って JSON 形式へ変換します。xmltodict と json というライブラリを使って、下記のような簡単なスクリプトで JSON 形式へ変換が可能です。

実行した結果は下記のようになり、JSON 形式になっていることが確認できます。

以上が Yang Model -> XML -> JSON 変換でした。

スポンサーリンク

フォローする

スポンサーリンク