Rubyハッシュの文字列として返されるコマンド出力を使っています。 (mcollectiveと呼ばれるものから)。ここで Rubyハッシュ文字列をPython辞書に変換する
は、私が受けてる例の文字列です:{:changes=>{"total"=>0}, :events=>{"failure"=>0, "success"=>0, "total"=>0}, :version=> {"puppet"=>"2.7.21 (Puppet Enterprise 2.8.1)", "config"=>1381497648}, :time=> {"filebucket"=>0.000287, "cron"=>0.00212, "package"=>0.398982, "exec"=>0.001314, "config_retrieval"=>5.60761618614197, "anchor"=>0.001157, "service"=>0.774906, "total"=>9.85111718614197, "host"=>0.002662, "user"=>0.063606, "file"=>2.998467, "last_run"=>1381497660}, :resources=> {"skipped"=>6, "failed_to_restart"=>0, "out_of_sync"=>0, "failed"=>0, "total"=>112, "restarted"=>0, "scheduled"=>0, "changed"=>0}}
私はこのためのミニパーサを書き込むことができるんだけど、それは手間のかかる作業です。誰かが私のためにこれをPython辞書に変換できるライブラリまたはコードスニペットを知っていますか?
私はそれを解析する必要があると思うなら、あらゆるヒントを歓迎します。
迅速なハックだけで=>を置き換えるために、次のようになりますと:[-Z] + "\ 1" とし、その後ast.literal_evalまたはjson.loadsを呼び出します。それは文字列リテラルを無視するので正しくないでしょうが、今のところ十分かもしれません。 – Antimony
彼らのドキュメントhttp://docs.puppetlabs.com/mcollective/reference/basic/basic_cli_usage.htmlによると、JSON: '-j'フラグもエクスポートできます。 – georg
残念ながら実行中のバージョンではありません。しかし、ええそれは最高だ – joeButler