2013-03-09 48 views
6

我正在處理系統以輸出JSON文件,並使用Python解析數據並將其顯示在UI(PySide)中。我現在想要爲該系統添加過濾器,我認爲不用編寫一個查詢系統,如果有一個用於JSON的(在Python中),那將爲我節省大量的開發時間。我發現這個線程:針對JSON的結構化查詢語言(使用Python)

Is there a query language for JSON?

但是這更多基於Web的系統。任何關於Python等價物的想法?

EDIT [爲了清晰]:

的格式,我會產生的數據是這樣的:

{ 
    "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" 
    } 
} 

其中「兒童」可以被嵌套的同樣的事情陣列(其它操作)。該系統將被構建爲允許用戶將自己的標籤添加到數據中。我希望有一個查詢系統,允許用戶定義他們自己的「過濾器」,因此也就是查詢語言的問題。如果有什麼東西可以讓我做類似「SELECT * WHERE」的類型「==」回調「並獲得必要的操作,那就太棒了。

Pync的建議很有趣,我會給那看一下

+0

這似乎是一個相當開放的問題,可能需要更多的研究,才適合在這裏。 – 2013-03-09 02:41:41

+0

你能舉一個你正在使用的json的例子,以及一個預期的查詢嗎? – cwgem 2013-03-09 03:35:48

回答

6

我想到了這一點,我傾向於一些不那麼具體的東西,比如「JSON查詢語言」,並且認爲它是更通用的東西。我記得從與C#一起工作,他們有點有點通用查詢系統稱爲LINQ,用於處理這些查詢問題

看起來好像Python有類似的東西叫做Pynq它支持基本查詢如:

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

它甚至似乎有一些基本的aggregation functions。雖然不特定於JSON,但我認爲這是查詢的最佳起點。