4
파이썬으로 erlang 설정 파일을 분석하고 싶습니다. 그것을위한 모듈이 있습니까? 이 구성 파일에는 다음이 포함됩니다.파이썬으로 Erlang 설정 파일을 파싱
[{webmachine, [
{bind_address, "12.34.56.78"},
{port, 12345},
{document_root, "foo/bar"}
]}].
파이썬으로 erlang 설정 파일을 분석하고 싶습니다. 그것을위한 모듈이 있습니까? 이 구성 파일에는 다음이 포함됩니다.파이썬으로 Erlang 설정 파일을 파싱
[{webmachine, [
{bind_address, "12.34.56.78"},
{port, 12345},
{document_root, "foo/bar"}
]}].
안된 약간 거친, 그러나 당신의 예에서 '작동'
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'}
etl 라이브러리를 사용하여 파이썬에서 erlang 용어를 구문 분석 할 수 있습니다. https://github.com/machinezone/python_etf
erlang sh 그러면 당신을 위해 포맷팅을하게 하시겠습니까? 파이썬에서는 아니지만, 필자는 알고있다. 그러나 모서리의 경우를 잡아서 파이썬 쪽에서 파싱을 간단하게 만든다. – selle
파이썬에 대한 조언이 없지만, 여기에 erl 콘솔과 유닉스 스크립트를 통해 확인하는 게시가 있습니다. http://stackoverflow.com/questions/13423387/how-do-i-validate-an-erlang-config-file -from-a-linux-command – Eric