4

Pythonでerlang構成ファイルを解析したい。そのためのモジュールはありますか?この構成ファイルには以下が含まれます。

[{webmachine, [
 {bind_address, "12.34.56.78"},
 {port, 12345},
 {document_root, "foo/bar"}
]}].
4

2 に答える 2

4

etf ライブラリを使用して、python https://github.com/machinezone/python_etfで erlang 用語を解析できます。

于 2015-06-10T14:52:17.637 に答える
4

テストされておらず、少し荒いですが、あなたの例では「うまくいきます」

import re
from ast import literal_eval

input_string = """
[{webmachine, [ 
 {bind_address, "12.34.56.78"}, 
 {port, 12345}, 
 {document_root, "foo/bar"} 
]}]
"""

# make string somewhat more compatible with Python syntax:
compat = re.sub('([a-zA-Z].*?),', r'"\1":', input_string)

# evaluate as literal, see what we get
res = literal_eval(compat)

[{'webmachine': [{'bind_address': '12.34.56.78'}, {'port': 12345},
{'document_root': 'foo/bar'}]}]

次に、辞書のリストを単純な に「ロールアップ」できます。次にdict例を示します。

dict(d.items()[0] for d in res[0]['webmachine'])

{'bind_address': '12.34.56.78', 'port': 12345, 'document_root':
'foo/bar'}
于 2012-09-06T10:26:56.113 に答える