我想用“ $”提取一个元素。但是它什么也没检索到(main.py的第一个调用)。有人知道怎么了吗?谢谢。
$ cat data.json
{
"id": {
"$": {
"view": "all",
"id": "sec4",
"role": "materials-methods"
}
}
}
$ cat main.py
#!/usr/bin/env python
# vim: set noexpandtab tabstop=2 shiftwidth=2 softtabstop=-1 fileencoding=utf-8:
import sys
import json
json_data = json.load(sys.stdin)
import jsonpath_rw_ext
res = jsonpath_rw_ext.match(sys.argv[1], json_data)
for match in res:
print match.keys()
$ < data.json ./main.py '$."$"'
$ < data.json ./main.py '$."id"'
[u'$']
答案 0 :(得分:0)
要使用的正确jsonpath表达式为'$.id.$'
。
注意:请不要将Python2用于新代码,并将现有的Python2代码迁移到Python3
答案 1 :(得分:0)
尝试这个
$[?(!@.$)]
这将忽略所有包含$
的节点