我正在研究一个输出JSON文件的系统,我使用Python来解析数据并在UI(PySide)中显示它.我现在想对该系统添加过滤,我认为不是编写查询系统,如果有一个用于JSON(在Python中),那将节省我很多开发时间.我找到了这个帖子:
但对于基于Web的系统来说更是如此.关于Python等价的任何想法?
编辑[为清晰起见]:
我将生成的数据格式如下:
{
"Operations": [
{
"OpID": "0",
"type": "callback",
"stringTag1": "foo1",
"stringTag2": "FooMsg",
"Children": [...],
"value": "0.000694053"
},
{
"OpID": "1",
"type": "callback",
"stringTag1": "moo1",
"string2": "MooMsg",
"Children": [...],
"value": "0.000468427"
}
}
Run Code Online (Sandbox Code Playgroud)
其中'Children'可以是同一事物的嵌套数组(其他操作).系统将构建为允许用户添加自己的标签以及数据.我希望有一个查询系统,允许用户定义自己的"过滤器",因此有关查询语言的问题.如果有什么东西可以让我做类似"SELECT*WHERE"的类型"=="回调"并获得必要的操作,那就太好了.
Pync的建议很有意思,我来看看.
Jos*_*lls 14
我注意到这个问题是几年前提出的,但如果其他人发现了这个问题,这里有一些新的项目试图解决同样的问题:
我个人选择了pyjq,因为我jq一直使用数据探索,但 ObjectPath 似乎非常有吸引力并且不限于 json。
我想到了这一点,我倾向于不那么具体的东西,比如"JSON查询语言",并考虑更通用的东西.我记得在使用C#时他们有一个名为LINQ的通用查询系统来处理这些查询问题.
看起来Python有类似的Pynq,它支持基本的查询,例如:
filtered_collection = From(some_collection).where("item.property > 10").select_many()
Run Code Online (Sandbox Code Playgroud)
它甚至似乎有一些基本的聚合功能.虽然不是特定于JSON,但我认为它至少是查询的良好起点.