yaml.loadによって呼び出される項目()の制御順序:PyYAMLと:私はデシベルでいくつかのレコードを作成し、YAML設定ファイルを持っている
setting1:
name: [item,item]
name1: text
anothersetting2:
name: [item,item]
sub_setting:
name :[item,item]
私はsetting3でこのファイルを更新し、DB内のレコードを再生成:)
import yaml
fh = open('setting.txt', 'r')
setting_list = yaml.load(fh)
for i in setting_list:
add_to_db[i]
それはイムはデシベルにそれらをaddigとしてそれらの順序が設定(DB内のID番号)が毎回同じとどまることが重要だ...とsetting3はちょうど(yaml.loadに付加されますそのidがすでに私のレコードを混乱させないように終わります現時点ではnはデシベル... 私は別の設定を追加し、()レコードは異なるIDになり、異なる順序でロードされますyaml.loadを呼び出すたびに。 私は abarnertヒントに続き、期待のおかげで、この主旨にhttps://gist.github.com/844388
作品を取ってきました:
EDIT);私は、任意のアイデアを歓迎します!おそらく出発点として、辞書や辞書のようなオブジェクトを受け入れるようにそれを変更するのは簡単だろうけれども
まずはこの "PyYAML"、または何か他の?組み込みの 'yaml'モジュールと' yaml'モジュールを与える少なくとも2つのPyPIパッケージはありません。一般的に、サードパーティのモジュールを使用している場合は、どこから入手したかを明記する必要があります。 – abarnert
あなたが使用しているモジュールが何であれ、マッピングノードをPythonに変換する方法をフックする必要があるので、 'dict'の代わりに' collection.OrderedDict'を使います。 PyYAML以外のモジュールでは、わかりません。 'PyYAML'では、これは間違いなく可能ですが、あなたが高度な便利メソッドに固執しているならば複雑です。他の誰かが、意図されたフックを使用するのではなく、それをモンキータイピングする方が簡単だと言いました。 – abarnert
Imこの質問のタイトルとしてPyYAMLを使用しています... - > PyYAML:yaml.load()によって呼び出される項目の順序を制御します。アドバイスありがとうございます!! – zzart