2012-04-08 1 views
0

Мне нужно хранить данные структурированного файла, которые являются как человеческими, так и машиносчитываемыми. В основном я использую python для открытия/редактирования/чтения этих файлов. Однако мне, возможно, придется использовать и другие программы.Человеко-машинная читаемость - Хранилище структурированных данных в файлах

Раньше я использовал 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.

В качестве альтернативы вы можете использовать lxml's XPath methods, которые имитируют интерфейс xml.etree.ElementTree, но поддерживают более сложные выражения XPath. Тем не менее, lxml должен быть installed, поскольку он еще не является частью стандартной библиотеки.

Для многих задач вы также можете использовать JSON вместо XML. JSON легко разбирается и проходит через собственные функции вашего языка программирования.

Смежные вопросы