elisp コードを使用して YAML で構成を読み取りたい。検索しましたが、elisp ですぐに使用できるパーサーが見つかりませんでした。何か役に立つものを見逃しましたか?
質問する
2467 次
5 に答える
5
そして数ヶ月後:私はそれが欲しかったので、Pythonの助けを借りてそれを行う方法は次のとおりです。
(defun yaml-parse ()
"yaml to json to a hashmap of current buffer, with python.
There is no yaml parser in elisp.
You need pyYaml and some yaml datatypes like dates are not supported by json."
(interactive)
(let ((json-object-type 'hash-table))
(setq myyaml (json-read-from-string (shell-command-to-string (concat "python -c 'import sys, yaml, json; json.dump(yaml.load(sys.stdin), sys.stdout, indent=4)' < " (buffer-file-name))))))
;; code here
)
の助けを借りて、現在のバッファの yaml を elisp ハッシュマップに変換しますjson.el
。
python の pyyaml: が必要です pip install PyYaml
。
于 2014-08-07T14:25:32.273 に答える
5
6 か月後、その答えは「簡単に入手できる確実な elisp YAML パーサーは存在しない」であることがわかりました。
本当に elisp で YAML ドキュメントを読み取り、それを elisp が対話できるものに変換したい場合は、いくつかの厄介な作業を行う必要があります。EmacsWikiの YAML ページには多くの情報がありません。正規のYAML モードには構文のヒントがありますが、実際のパーサーはありません。幸いなことに、誰かがYAML を取り、JSON または Python を出力する YAML 解析 Web アプリを実装しました。その内部を調べたり、それを使用して自分で作成した YAML パーサーを確認したりできます。
幸運を。
于 2012-10-16T18:12:49.797 に答える