2012-04-08 3 views
0

인간과 기계가 읽을 수있는 구조화 된 파일 데이터를 저장해야합니다. 나는 주로 python을 사용하여이 파일을 열거 나 편집하거나 읽습니다. 그러나 다른 프로그램을 사용해야 할 수도 있습니다.Human-Machine Readable - 파일의 구조화 된 데이터 저장소

XML/XPATH를 사용했습니다. 그러나 xpath 라이브러리는 허약하며 상당량의 좌절감을 안고 대부분의 시스템에서 작동하지 않습니다. 나는 다른 플랫폼으로 스크립트를 포팅하는 xpath를 알아 내려고 피곤하다.

[email protected]:~/$ program -arg1 "foo" -arg2 
    File "/home/me/bin/script.py", line 16, in <module> 
    from xml import xpath 
ImportError: cannot import name xpath 

BTW, sudo apt-get install python-xml이 문제는 해결되지 않습니다.

결론은 xml/xpath가 싫증이났다는 것입니다. 모든 플랫폼에서 문제없이 모든 경우에 사용할 수있는 솔루션을 원합니다.

무엇을 사용할 수 있습니까? 조언?

+0

무엇을 사용하고 계십니까? XPath/XQuery는 중첩 된 데이터를 쿼리하는 매우 강력한 방법이며 플랫폼간에 가장 많이 지원됩니다. JSON은 아직 정의 된 쿼리 언어와 거의 비슷하지만 단순한 쿼리 만 필요하다면 매우 광범위한 플랫폼을 지원합니다. YAML은 훨씬 간단한 대안이다. 사람이 읽을 수 있지만 JSON/XML과 같이 복잡한 중첩 데이터에는 적합하지 않습니다. –

답변

1

xml.etree.elementTree은 Python 2.5부터 표준 라이브러리의 일부입니다. 기본 XPath findall 함수도 포함되어 있습니다.

또는 xml.etree.ElementTree의 인터페이스를 모방하지만 더 고급 XPath 표현식을 지원하는 lxml's XPath methods을 사용할 수 있습니다. 그러나 lxml은 (아직) 표준 라이브러리의 일부가 아니므로 installed이어야합니다.

많은 작업에서 XML 대신 JSON을 사용할 수도 있습니다. JSON은 프로그래밍 언어의 기본 기능을 파싱하고 트래버스하기 쉽습니다.

관련 문제