JSON的结构化查询语言(在Python中)

时间:2013-03-09 02:21:23

标签: python sql json

我正在研究输出JSON文件的系统,我使用Python来解析数据并在UI(PySide)中显示它。我现在想对该系统添加过滤,我认为不是编写查询系统,如果有一个用于JSON(在Python中),那将节省我很多开发时间。我找到了这个帖子:

Is there a query language for JSON?

但对于基于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"
   }
}

其中'Children'可以是同一事物的嵌套数组(其他操作)。系统将构建为允许用户添加自己的标签以及数据。我希望有一个查询系统,允许用户定义自己的“过滤器”,因此有关查询语言的问题。如果有什么东西可以让我做类似“SELECT * WHERE”的类型“==”回调“并获得必要的操作,那就太棒了。

Pync的建议很有意思,我来看看。

3 个答案:

答案 0 :(得分:6)

我想到了这一点,我倾向于不那么具体的东西,比如“JSON查询语言”,并考虑更通用的东西。我记得在使用C#时他们有一个名为LINQ的通用查询系统来处理这些查询问题。

看起来Python有类似的名为Pynq的东西支持基本查询,例如:

filtered_collection = From(some_collection).where("item.property > 10").select_many()

它甚至似乎有一些基本的aggregation functions。虽然不是特定于JSON,但我认为它至少是查询的良好起点。

答案 1 :(得分:1)

我注意到几年前有人问过这个问题,但是如果有人发现了这个问题,下面是一些新的项目试图解决这个问题:

我个人使用pyjq是因为我一直使用jq进行数据探索,但是ObjectPath似乎非常吸引人,并且不仅限于json。

答案 2 :(得分:1)

您还可以签出PythonQL,这是Python的查询语言扩展,可以处理SQL和JSON查询:pythonql