2013-03-09 2 views
6

Я работаю над системой для вывода файла JSON, и я использую Python для анализа данных и отображения их в пользовательском интерфейсе (PySide). Теперь я хотел бы добавить фильтрацию в эту систему, и я думаю, вместо написания системы запросов, если бы там был JSON (на Python), это спасло бы меня много времени разработки. Я нашел эту тему:структурированный язык запросов для JSON (в Python)

Is there a query language for JSON?

, но это больше для веб-системы. Любые идеи о эквиваленте 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» «==» callback »и получить требуемые операции назад, это было бы здорово.

Предложение Pync интересно, я дам что вид.

+0

Это похоже на довольно открытый вопрос, который может потребоваться больше исследований, прежде чем он подходит здесь. –

+0

Можете ли вы привести пример json, с которым вы работаете, а также ожидаемый запрос? – cwgem

ответ

6

Я немного подумал об этом, и я склоняюсь к чему-то менее конкретному, например, «Язык запросов JSON» и считается чем-то более общим. Я вспомнил, что немного работал с C# общая система запросов, называемая LINQ для обработки таких вопросов.

Похоже, что у Python есть что-то подобное по имени Pynq, которое поддерживает Основной выполнение запроса, такие как:

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

Он даже, кажется, есть некоторые основные aggregation functions. Хотя я не являюсь конкретным для JSON, я думаю, что это наименее хорошая отправная точка для запросов.

Смежные вопросы