从PostGreSQL jsonb列中提取键值对?

时间:2017-02-06 09:08:01

标签: python json postgresql extraction

我有一个postgresql数据库,其中我有一个包含jsonb对象的列。

我遇到了需要从json对象中提取单个键值对的情况。我目前不知道,也无法找到任何有关如何完成此操作的示例。

我有下表:

----------------------------------------------
| id | did | timestamp | data | db_timestamp |
----------------------------------------------

数据列是我的json对象,它包含的一个例子是:

{"n": 336372148490, "ac": 22.0, "al": 119.0, "be": 346.3, "la": 55.69707492, "lo": 12.58713834, "sa": 5, "sp": 2.6100767, "provider": "gps"}

所以我想做的是写一个查询,在其中我寻找一个键值对。我目前有以下查询,

SELECT data WHERE did = '357139052424715' and timestamp < 1466642640000

我想提取一个键值对。如何更改上述查询以仅提取"la": 55.69707492

1 个答案:

答案 0 :(得分:1)

你可以这样做:

SELECT data->>'la' WHERE did = '357139052424715' and timestamp < 1466642640000

有关更多示例,请参阅:

http://clarkdave.net/2013/06/what-can-you-do-with-postgresql-and-json/