Python を使用してドット区切りの値を Go 構造体に変換する

王林
リリース: 2024-02-10 13:33:08
転載
945 人が閲覧しました

使用 Python 将点分隔值转换为 Go 结构

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 列には、同様の重複した単語が多数あります。 これは

go_var = selected_rows['go_var'].values[1]

でインデックスが 1 にハードコーディングされていることに関係していることはわかっていますが、これを修正するのは困難です。 誰か答えてくれませんか?私は思う、###

再帰関数の問題

    json を生成するコードに問題があります がこの問題の根本原因である可能性があります。
  1. ###ありがとう!
  2. chatgpt も使用してみましたが、これはネストと再帰に関係しているため、chatgpt が提供する答えはあまり効率的ではありません。

更新

properties

pooloptions

endpoint、および parameters フィールドを含む行に問題が見つかりました。これは、yaml_key 列で重複しているためです。 解決策この問題は解決できました。ただし、この問題に対してまったく新しいアプローチを使用する必要がありました。それは、ツリー データ構造を使用し、それを反復処理するというものでした。これがその背後にある主なロジックです -

https://www.geeksforgeeks.org/level-sequential Tree traversal/

これは動作する Python コードです。 リーリー ###助けてくれてありがとう!

以上がPython を使用してドット区切りの値を Go 構造体に変換するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!