2

JSON 用のクエリ言語はありますか?に似ている より具体的には、属性値を使用して YAML データセットをフィルター処理するにはどうすればよいですか? - 私はしたいと思います:

  • YAML ファイル内の少量のデータを手作業で編集する
  • 完全なデータセットに対して任意のクエリを実行する (おそらく Python で、他のアイデアを受け入れる)
  • 結果のサブセットを Python で操作する

PyYAMLにはこのような機能があるようには見えず、今日、私が持っていた YQuery 言語へのリンクを見つけることができません。これはとにかく成熟したプロジェクトではありませんでした (または、夢見ていたのかもしれません)。

YAML クエリを提供する (Python) ライブラリはありますか? そうでない場合、一連のオブジェクトを反復処理する以外に、一連のオブジェクトを「クエリ」する Pythonic の方法はありますか?

4

4 に答える 4

1

bootalchemyは、SQLAlchemy を介してこれを行う手段を提供します。まず、SQLAlchemy モデルでスキーマを定義します。次に、bootalchemy を使用して YAML を SQLAlchemy セッションにロードします。最後に、そのセッションでクエリを実行します。(セッションを実際のデータベースにコミットする必要はありません。)

PyPI ページのmodel(既に定義されていると仮定):

from bootalchemy.loader import Loader

# (this simulates loading the data from YAML)
data = [{'Genre':[{'name': "action",
                   'description':'Car chases, guns and violence.'
                  }
                 ]
        }
       ]

# load YAML data into session using pre-defined model
loader = Loader(model)
loader.from_list(session, data)

# query SQLAlchemy session
genres = session.query(Genre).all()

# print results
print [(genre.name, genre.description) for genre in genres]

出力:

[('action', 'Car chases, guns and violence.')]
于 2014-02-26T14:00:26.000 に答える
0

jsonpath を使用してみてください。はい、これは yaml ではなく json を対象としていますが、json と互換性のあるデータ構造を持っている限り、json または yaml 表現ではなく、解析されたデータで作業しているため、これは機能するはずです。(pythonライブラリjsonpathとで動作するようですjsonpath-rw

于 2014-02-07T16:11:31.593 に答える