2012-04-08 41 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 

顺便说一句,sudo apt-get install python-xml不能解决这个问题。

底线是我厌倦了xml/xpath。我想要一个解决方案,可以在所有情况下在所有平台上工作,毫无疑问!

我能用什么?建议吗?

+0

你在用什么? XPath/XQuery是查询嵌套数据的非常强大的手段,并且可以说是跨平台支持最多的手段。 JSON目前还没有定义健壮的查询语言,但如果您只需要简单的查询,则它具有非常广泛的平台支持。 YAML是一个更简单的选择;更具人性化,但不适合复杂的嵌入式数据,如JSON/XML。 – 2012-04-08 18:14:02

回答

1

xml.etree.elementTree是自Python 2.5以来的标准库的一部分。它还包含一个基本的XPath findall函数。

或者,您可以lxml's XPath methods模仿xml.etree.ElementTree的界面,但支持更高级的XPath表达式。但是,lxml需要是installed,因为它不是标准库的一部分。

对于许多任务,您还可以使用JSON而不是XML。 JSON很容易解析和遍历编程语言的本地函数。