如何从json文件中提取一些文本而不加载它?

时间:2018-01-13 07:23:56

标签: python xpath lxml jsonpath

python lxml可用于从XML文件中提取文本(例如,使用xpath),而无需完全解析XML。例如,我可以执行以下比BeautifulSoup更快的操作,特别是对于大输入。我想为JSON提供一些等效的代码。

from lxml import etree
tree = etree.XML('<foo><bar>abc</bar></foo>')
print type(tree)
r = tree.xpath('/foo/bar')
print [x.tag for x in r]

我看到http://goessner.net/articles/JsonPath/。但我没有看到一个示例python代码从json文件中提取一些文本而没有使用json.load()。有人能告诉我一个例子吗?感谢。

1 个答案:

答案 0 :(得分:2)

我假设您出于性能原因不想加载整个JSON。

如果是这种情况,或许https://github.com/ros-infrastructure/rospkg/issues/125就是您所需要的。我用它来搜索巨大的JSON文件(&gt; 8gb),效果很好。

但是,您必须自己实施搜索代码。