問題タブ [sqlite-json1]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
json - JSON extract\set の SQLite JSON1 の例
SQLite には、JSON フィールドを操作するための実験的な JSON1 拡張機能が含まれています。選択する関数は有望に見えますが、クエリのコンテキストでそれらを使用する方法がわかりません。
次のテーブルを作成したとします。
ドキュメントにはクエリでの使用方法が示さjson_each
れていますが、他のすべての関数にはコンテキスト ドキュメントが欠けています。
SQLite の経験がある人は、使用方法のいくつかの例を提供できますか?
json_extract
json_set
json - コロン (:) を含むキーに対して Sqlite で json_extract を使用する際の問題
以下のようなサンプルデータセットがあります
これを sqlite3 3.13 にインポートして分析を行います (.mode csv、.headers on、.separator '|'、.import file.csv dev)
ご覧のとおり、2 番目のフィールドは json 形式のデータで、すべてのキーの名前に : が含まれており、私の問題の一部だと思います。
列タイプが Test に一致するすべての行を選択して選択し、属性列の json から devpow:battery 値を出力したいと思います
以下のすべてを試しましたが、これを機能させることができません
そして、上記のかなりの数の浸透。どんな助けでも大歓迎です。
python - Python - SQLite JSON1 ロード拡張機能
Python 内で SQLite の json1 拡張機能を使用したいと考えています。公式ドキュメントによると、ロード可能な拡張機能である必要があります。ソースから json1.c ファイルを取得し、エラーなしで公式の指示に従ってjson1.so にコンパイルしました。
sqlite3 documentationに従って、Python 2.7.12 (および 3.5.2) で拡張機能をロードしようとしたときに問題が発生しました。
次のトレースバック エラー メッセージを受け取りました。json1.so ファイルが含まれるフォルダーから Python インタープリターを実行しました。最後のコロンのおかげでもっと情報があるはずですが、以下は完全なエラー メッセージです。
Python内でjson1をロード可能な拡張機能として使用することは実際には不可能ですか? Charles Leifer によるこのブログ投稿で説明されているように、SQLite、pysqlite2 などを再コンパイルする唯一のオプションはありますか?
編集:
結局のところ、私のマシンには既にこの拡張機能と他の拡張機能が既に有効になっているため、エラーが発生していました。すでに有効になっている拡張機能を有効にするアクションがエラーを引き起こしました。これまでのところ、私がアクセスできるすべての Linux コンピューターでは、Python に付属の SQLite で json1 および fts5 拡張機能が既に有効になっています。SQLite データベースに接続して次のクエリを実行すると、どのコンパイル オプションが使用されたかを確認できます。
node.js - エラー: そのような関数はありません: JSON1 がインストールされた SQLite の json_each
私はbrewを介してJSON1でSQLite3をインストールしました:
バージョン:
クエリを実行すると、次のような一部の関数が正常に動作しますjson_extract
。
ただし、json_each
orを使用しようとするjson_tree
と失敗します。
テーブル内のBody
フィールドは有効な JSON 文字列です。Event
そして、labels
値は配列です。
私はドキュメントを読んで (そしてjson_each の例を見て)、インターウェブを検索しましたが、これを有効にするための追加の要件を見つけることができませんでした。
私は何を間違っていますか、または json_each/json_tree からどのように利益を得るのですか?