问题标签 [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.

0 投票
1 回答
384 浏览

json - 如何使用 sqlite json-extract 提取嵌套的 json

如何使用 sqlite json-extract 或其他 sqlite json 命令提取嵌套的 json?

在这里我想提取given_id

谢谢。

0 投票
0 回答
47 浏览

python - 在 python/sqlalchemy 中将 sqlite3 JSON1 扩展输出作为 JSON 返回

我正在 python3 中使用 sqlite3 JSON1扩展。以下代码将输出作为字符串返回,但我希望它是一个 JSON 对象。在没有使用 json.loads() 的情况下,这甚至可以在 sqlite3 中实现吗?

输出

如果我可以通过 SQLalchemy 让它工作会更好(同样,我想避免使用 json.loads())

属性值是一个字符串,而不是 JSON 对象。

[{'properties': '{"id":"id1","device_name":"device1","role":"backbone","in_maint":true}'}]

编辑:我不知道返回的哪些列将包含 JSON 数据,因此,需要在不对每个列的值执行 json.loads() 的情况下执行此操作。最终,这些数据将以 JSON 形式返回给用户。API 用户将执行原始 SQL 查询。

0 投票
1 回答
437 浏览

sql - 使用 JSON1 跨多个表聚合 SQLite 查询

我无法解决以下问题。前几天我学习了如何使用 JSON1 系列函数,但这一次似乎更像是一个 SQL 问题。

这是我的数据库设置:

基于这些数据,我想得到以下输出,这是聚合到单个 JSON 数组中的所有人的所有兴趣:

现在以下是我尝试做的。不用说,这并没有给我想要的东西:

不想要的输出是:

非常感谢任何帮助!

0 投票
1 回答
59 浏览

json - 当 SQLite 中的键从一行到另一行不同时,如何访问 json 值?

试图理解以 json 格式编写的数据库。我设法将主表转换为 csv 格式,但是表本身中有以 json 格式编写的列。

有问题的表格描述了足球比赛,我遇到问题的属性提供了两支球队的详细信息(如阵容、进球等)。该属性提供了两个主要的键/值对,键值是参加比赛的球队的 id,因此键会逐行更改。

我已经设法通过在如下查询中手动写入 id 来访问一些信息(使用 team_id 1609):

(有问题的列称为teams_data,有问题的表称为Matches_England)

然而,这显然不是每场比赛都可行的。

我正在寻找一种方法来访问 SQLite 中每一行的这两个值。

这是相关行的示例:

在这种情况下,参加比赛的两个团队 id 是 1631 和 1609。如果我能够找到一种方法将这两个键/值对分成两个单独的列,仅包括两个单独的值(如团队 ID 再次嵌套在原始值中,因此我仍然可以从那里获取它)。

0 投票
1 回答
103 浏览

sqlite - 如何使用 json1 将数据内部连接和解析为 JSON

例如,假设我有一个名为Movie的表,有 2 列 - [id,title]

资料

另一个表作为 Cast有 2 列 - [id,name]

数据:

演员表有演员,id 与电影相同。

我想要的 SELECT 查询的输出类似于:

我尝试了什么:

但它返回:

请提出正确的数据分组方式。我也尝试过分组,但它返回的数据更少。

如果我使用json_group_array,我只会得到一部全演员的电影

0 投票
0 回答
66 浏览

python - sqlite3.OperationalError:未定义符号:sqlite3_json_init

我已经安装了Python的JSON1扩展。sqlite3

我通过以下方式连接到数据库:conn = sqlite3.connect(DATABASE_PATH)

当我尝试使用conn.load_extenstion(PATH_TO_EXTENSION). 我收到以下错误:

sqlite3.OperationalError:/home/shtlrs/chrisJ_property_database/json_ext/json1:未定义符号:sqlite3_json_init

问题是它在我的电脑上运行,但是当我尝试在另一台笔记本电脑上运行它时,它给了我这个错误。

0 投票
2 回答
560 浏览

javascript - 有没有一种方法可以检查数组是否在 SQLite 中包含一个值?

假设我们有这个 id=number 和 tags=text 的 SQLite 表:

有没有办法只返回它们的单元格tags包含“love”的行,例如 MySQL 中的这个命令:SELECT * from my_table WHERE JSON_CONTAINS(tags, '"love"')在 SQLite 中。

我将它与带有sql.jsnode.js的库一起使用

0 投票
1 回答
176 浏览

database - 从 json 中提取唯一值的 SQLite 查询

对于在 React Native 中使用,

假设我有一个 SQLite 数据库表,其中包含 col1 主表 col2。

其中 col1 包含一个序列号,而 col2 包含一个 JSON

我只想使用 SQLite 查询提取那些唯一值,我期望的输出是:["value1","value2","value3","value4","value"]

0 投票
0 回答
41 浏览

python - 无穷大可以存储在 SQLite JSON1 列中吗?

用例

我将 SQLAlchemy 和 SQLite 用于独立应用程序(非 Web),我需要将数值范围存储在数据库中。我通过在 SQLite 中保存每个范围的开始和结束来做到这一点,如下所示:

在最终的应用程序中,我需要确定任意值number落在哪个范围内。我正在做如下的事情:

number可以是任何整数或无穷大,因此 db 中的范围必须从负无穷大延伸到正无穷大

问题

以下代码工作正常

但是当我添加一个CheckConstraint调用时,json_array_length(ranges)我得到一个malformed JSON错误:

追溯:

我确认[[float("-inf"), 1], [1, float("inf")]]没有通过更改CheckConstraintto将其转换为有效的 JSON,json_valid(ranges)并且仅当列中存在无穷大时它才会失败。

必须能够将CheckConstraints 添加到ranges列中。我需要对其他列执行数据验证步骤。其中的细节很复杂,超出了这个问题的范围。

解决方法

我想我可以通过这样替换来解决这个float("inf")问题"inf"

我可以确定任意的范围,number例如:

但现在我在列中混合了类型,我更喜欢只存在数字。

回到问题

有没有办法在 JSON1 列中存储无穷大?如果有其他数据库支持数组中的无穷大(适用于独立应用程序),请分享。理想情况下,SQLAlchemy 支持这个数据库。

0 投票
1 回答
145 浏览

json - 在 Sqlite 查询中使用 JSON 谓词获取数组项

我正在尝试使用谓词从 Sqlite 中的 JSON 数组中检索单个项目。

这是我的样本数据集:

我只想检索价格为 22.99 的商品。

在 XPath 中,我会做这样的事情://book[@price='22.99']

我在线尝试了一些 JSON 路径评估器(https://jsonpath.com/),这应该可以工作:$.book[?(@.price == 22.99)]

但是,当我尝试SELECT在 Sqlite 的查询中使用相同的路径时,它会引发以下异常:

我错过了什么吗?当我尝试没有谓词(如$.book[2].title)的路径时,它可以工作。

我的完整 SQL 查询是(JSON 在content字段中):

PS:我知道我可以使用该WHERE语句进行查询,但我更愿意仅使用 JSON 路径使其工作。