問題タブ [pyyaml]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2096 参照

python - Python yaml 出力 - 浮動小数点精度?

私は pyyaml を使用して Python 辞書から yaml ファイルを出力していますが、浮動小数点数がファイルに書き込まれるときに浮動小数点数の精度または出力形式を設定する方法を知りたいと思っています。

これを処理する yaml.dumper を作成するにはどうすればよいですか?

0 投票する
1 に答える
1652 参照

python - PyYAMLでオブジェクトをシリアル化するときにメンバーを無視するにはどうすればよいですか?

Trivial._ignoreこのオブジェクトをシリアル化するときにメンバーを無視するにはどうすればよいですか?

版画

0 投票する
1 に答える
1742 参照

python - 関数呼び出しをエイリアスに適用するにはどうすればよいですか?

私の目標は、以前に定義したノードを簡単に「フィルタリング」できるようにすることです。次の架空の YAML ファイルについて考えてみます。

*fruitrefカスタム関数(つまり、以前に定義されたオブジェクト、この場合はマップ) を引数として呼び出して戻り値を取得するには、YAML ファイルまたはこのファイルを解析する Python コードで何を定義する必要がありますか? ターゲットは、以前に定義された値 (マップ、シーケンスなど) を「フィルタリング」するためのシンプルで簡潔な構文です。

ノート

!次のエラーのために、コンストラクトタグ *エイリアスが無効な YAML であるように思われます。

これは、必要な構文を達成できないことを意味する可能性が最も高いですが、簡潔さには気を配っています (というか、ターゲット ユーザーはそうするでしょう)。

通ったルート

YAML:!!python/object/apply:__main__.rotten [*fruitref]

機能しますが、意図した用途には冗長すぎます。複数の引数は必要ありません。ユースケースは常にエイリアス (以前に定義されたマップ/シーケンス/オブジェクト) のフィルターです。

YAML:%TAG !f! !!python/object/apply:__main__.

おそらく!f!rotten [*fruitref]受け入れられるでしょうが、%TAGディレクティブを利用する方法が見つかりません。
編集: !!PyYAML 3.10 では機能しないことがわかりました。次のような完全な URL でなければなりません。%TAG !f! %TAG !f! tag:yaml.org,2002:python/object/apply:__main__.

パイソン:yaml.add_constructor

add_constructorクラスの特定のインスタンスにマップを「キャスト」するために既に使用しています。注意点は、タグ エイリアスが無効な YAML のように見えることです。

これまでで最高

add_constructor('!rotten', filter_rotten)Python と!rotten [*fruitref]YAML では機能しているようですが、可能であれば角括弧を省略する方法を考えています。

0 投票する
1 に答える
3703 参照

python - PyYAML リストに文字列を追加

私は PyYAML にかなり慣れていないので、すべてを理解していません。リストを含む YAML ファイルがあります。

Pythonファイルでリストを取得する方法を見つけることができましたが、リストに別の文字列を追加してYAMLファイルに保存する方法はわかりませんでした。だからそれはなるだろう

助けてください!YAML ファイルの読み取りに使用するコードは次のとおりです。

0 投票する
5 に答える
8706 参照

python - 他の YAML 形式の python yaml.dump 形式リスト

次のように、Python オブジェクトを YAML ファイルにダンプします。

だがしかし

image d は大量のリストであり、人間が見るには出力が乱雑になります。

I use: を使用していますdefault_flow_style=Falseが、これは新しい行リスト項目形式を使用しています。

私はすでに顧客のダンパーを使用してアンカーを停止しています。

0 投票する
1 に答える
531 参照

yaml - この YAML フォーマット エラーを修正するにはどうすればよいですか?

新しい YAML ドキュメントの定義に取り組んでいますが、ファイルを処理しようとすると、yamllint から次のエラーが表示されます。

テストを実行すると、PyCharm で次のエラーが発生します。

ScannerError: " "、2 行目、11 列目では値のマッピングは許可されていません<string>: 名前: testFirstNameLower

次のコードの場合:

正しくフォーマットされているように見えますが、何が間違っているのかわかりません...

0 投票する
2 に答える
276 参照

python - シリアル化時と逆シリアル化時の PyYAML パス

シンプルな GUI 開発ツールを含むゲーム エンジンに取り組んでいます。GUI ツールを使用すると、ユーザーはさまざまなエンティティとコンポーネントを定義し、構成ファイルに保存できます。ゲーム エンジン ランタイムが構成ファイルをロードすると、ゲームで使用するさまざまなエンティティとコンポーネントを作成する方法を決定できます。

構成ファイルの保存メカニズムには、PyYAML を使用しています。私が抱えている問題は、シリアル化プロセスが、PyYAML を介してファイルをロードして解析するモジュールとは異なるディレクトリにあるモジュールで発生するという事実に起因しています。

簡素化されたシリアライザー

これは、さまざまなゲーム オブジェクトを表すcontextオブジェクトを受け取り、dictそれを構成ファイルに書き込みます。これは問題なく動作します。

エンジン内の簡略化されたデシリアライザー

ここで問題が発生します。ではyaml.load(config_file)、特定のモジュールでさまざまな名前が見つからないため、エラーが発生します。なぜこれが起こっているのか理解しています。たとえば、構成ファイルをシリアル化すると、AssetComponent(エンジン内のコンポーネント タイプ) が at としてリストされengine.common.AssetComponentます。ただし、デシリアライザーの観点からは、 は にあるAssetComponentはずですcommon.AssetComponent(デシリアライゼーション コード自体がengineパッケージ内に存在するため) engine

PyYAML でシリアル化または逆シリアル化するときにパスを手動で処理する方法はありますか? 両方が同じ「視点」から起こるようにしたいと思います。

編集: 以下は、問題のある構成ファイルがどのように見えるかを示し、その後に手動で修正された構成がどのように見えるかを示しています

問題あり

修正済み

0 投票する
1 に答える
1292 参照

python - PyYAML でキーの名前を変更するにはどうすればよいですか

変更したい YAML ファイル (テンプレート) をロードしました (キーといくつかの値)。

例えば

PyYAML でキーを見つけて名前を変更するにはどうすればよいですか?

しかし、それはまだ変更を永続化していません