SQL 和 JSON 数据库 - R

数据挖掘 r 数据 sql json
2022-03-06 17:28:59

我有一个如下所示的数据库(PostgresSQL):

""results"": 
    {""WEBS"": 
        {""WEBS_4"": [{""ip"": ""XXXXX"", ""value"": ""YYYY""}]}}

我想访问 的信息ip

然后我在 R 中编写了以下查询,但它没有给我任何信息:

dbGetQuery(conexion,"SELECT 
              data->'results'->'WEBS'->'WEBS_4' ->'ip' as test
                          FROM results;")

当我写这个查询时:

dbGetQuery(conexion,"SELECT                   data->'results'->'WEBS'->'WEBS_4' as test
                          FROM results;")

我得到这样的结果[{""ip"": ""XXXXX"", ""value"": ""YYYY""}],这在 R 中不是很有用。

我的数据库的其他一些部分是高度嵌套的,所以我想访问那些带有[]标志的部分。

1个回答

WEBS_4是一个有两个元素的数组,所以里面没有ip元素,这就解释了为什么会失败:

dbGetQuery(conexion,"SELECT 
              data->'results'->'WEBS'->'WEBS_4' ->'ip' as test
                          FROM results;")

你需要得到 的第零个元素WEBS_4,然后你才能得到那个ip元素。这适用于我使用以下设置的简单 PostgreSQL 测试psql

SELECT  data->'results'->'WEBS'->'WEBS_4'->0->'ip' as test
                          FROM results;
  test   
---------
 "XXXXX"
(1 row)

所以我怀疑相关的 R 语法将是(未经测试的):

dbGetQuery(conexion,"SELECT 
              data->'results'->'WEBS'->'WEBS_4'->0->'ip' as test
                          FROM results;")