2012-09-06 3 views
4

파이썬으로 erlang 설정 파일을 분석하고 싶습니다. 그것을위한 모듈이 있습니까? 이 구성 파일에는 다음이 포함됩니다.파이썬으로 Erlang 설정 파일을 파싱

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

erlang sh 그러면 당신을 위해 포맷팅을하게 하시겠습니까? 파이썬에서는 아니지만, 필자는 알고있다. 그러나 모서리의 경우를 잡아서 파이썬 쪽에서 파싱을 간단하게 만든다. – selle

+0

파이썬에 대한 조언이 없지만, 여기에 erl 콘솔과 유닉스 스크립트를 통해 확인하는 게시가 있습니다. http://stackoverflow.com/questions/13423387/how-do-i-validate-an-erlang-config-file -from-a-linux-command – Eric

답변

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'} 
관련 문제