php エディターの Youzi は、この記事で Python を使用してドット区切りの値 (「key1.subkey1.subkey2」など) を Go 言語の構造に変換する方法を紹介します。 。この変換プロセスは、構成ファイルまたは API 応答からデータを抽出して処理する場合に役立ちます。 Python の再帰関数と Go 言語構造を使用してこの変換を実装し、詳細なコード例と説明を示します。この記事を学習すると、読者は点で区切られた値を簡単に処理および変換できるようになり、データ処理の効率と柔軟性が向上します。
これは、構成を変更できるアプリケーション (特に wso2 アイデンティティ サーバー。そのための kubernetes オペレーターの作成に go を使用しているため) に対する特定の要件です。しかし、それはここでは実際には関係ありません。 Go 構造を生成するための多数の構成マップを簡単に管理できるソリューションを作成したいと考えています。これらの構成は .csv
にマップされます。.csv へのリンク - my_configs.csv
###欲しい、go 構造を自動的に生成する Python スクリプトを作成します これにより、Python スクリプトを実行して対応する go 構造を作成するだけで、アプリケーション構成への変更を更新できるようになります。アプリケーション自体の構成を指します。例えば、csv内のTomlキー名を変更/新しい値を追加することができます。
これまでのところ、目標をほぼ達成する Python スクリプトの作成に成功しました。スクリプトは、 リーリー 問題は (CSV の以下の部分を参照)、
リーリーここでは、
basic フィールドと totp
フィールド parameters
が重複しているため、スクリプト自体が混乱し、2 つの totpparameters
構造体が生成されます。予期される結果は、basicparameters
および totpparameters
構造を持つことです。 CSV の yaml_key
列には、同様の重複した単語が多数あります。
これは
でインデックスが 1 にハードコーディングされていることに関係していることはわかっていますが、これを修正するのは困難です。
誰か答えてくれませんか?私は思う、###
再帰関数の問題
properties、
pooloptions、endpoint
、および parameters
フィールドを含む行に問題が見つかりました。これは、yaml_key
列で重複しているためです。 解決策
この問題は解決できました。ただし、この問題に対してまったく新しいアプローチを使用する必要がありました。それは、ツリー データ構造を使用し、それを反復処理するというものでした。これがその背後にある主なロジックです -
これは動作する Python コードです。 リーリー ###助けてくれてありがとう!
以上がPython を使用してドット区切りの値を Go 構造体に変換するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。