11

私は JSON ファイルを出力するシステムに取り組んでおり、Python を使用してデータを解析し、UI (PySide) に表示します。私は今、そのシステムにフィルタリングを追加したいと考えています。クエリ システムを作成する代わりに、(Python で) JSON 用のクエリ システムがあれば、開発時間を大幅に節約できると思います。このスレッドを見つけました:

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

「子」は、同じもの (他の操作) のネストされた配列である可能性があります。このシステムは、ユーザーが独自のタグをデータに追加できるように構築されます。私の希望は、ユーザーが独自の「フィルター」も定義できるクエリシステムを用意することでした。そのため、クエリ言語に関する質問がありました。"SELECT * WHERE "type" == "callback" のような操作を実行して、必要な操作を元に戻せるものがあれば、それは素晴らしいことです。

Pync の提案は興味深いので、見てみます。

4

3 に答える 3

10

私はこれについて少し考え、「JSON クエリ言語」などのあまり具体的でないものに傾倒し、より一般的なものを検討しました。C# を使用していたとき、これらの種類のクエリの問題を処理するために、LINQと呼ばれるやや一般的なクエリ システムがあったことを少し思い出しました。

Python には、次のような基本的なクエリをサポートするPynqと呼ばれるものがあるようです。

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

いくつかの基本的な集計関数もあるようです。JSON に固有のものではありませんが、クエリの開始点としては少なくとも良いと思います。

于 2013-03-09T03:57:00.773 に答える
6

この質問が数年前に出されたことに気づきましたが、他の誰かがこれを見つけた場合、同じ問題に対処しようとしている新しいプロジェクトがいくつかあります。

個人的にはデータ探索pyjqにいつも使っているのでjq採用しましたが、ObjectPath は非常に魅力的で、json に限定されないようです。

于 2019-03-29T21:14:28.850 に答える