2

我有一个 JSON 文件,C:\sensors\201802091904.json. 此数据文件与 PostgreSQL 安装位于同一本地驱动器上。

这是 JSON 的示例:

[
{"Data": " ** collection of property-value pairs ** }} ", "EventId": "", "Timestamp": ""},
{"Data": " ** collection of property-value pairs ** }} ", "EventId": "", "Timestamp": ""},
{"Data": " ** collection of property-value pairs ** }} ", "EventId": "", "Timestamp": ""}
]

Data属性值是一个 JSON 对象,包含观察结果以及有关传感器的数据。

我想将文件的内容加载到 PostgreSQL 11 表中。我想将 Data 属性值加载到 JSON 列类型中。如果可能的话,我想将元属性加载EventIdTimestamp它们自己的列中,但我稍后会弄清楚。

我找到了这个例子,但它并没有产生我们想要的结果。整个 JSON 块最终在一个字段中。我们需要将每个 JSON 对象{"Data": " ** collection of property-value pairs ** }} ", "EventId": "", "Timestamp": ""}插入到自己的行中。

这是迄今为止最成功的尝试:

XXX =# \set content `type C:\sensors\201802091904.json`
XXX =# create table t2 ( j jsonb );
XXX =# insert into t2 values (:'content');
XXX =# select * from t2;

如何在 Windows 10 上将 JSON 文件加载到 PostgreSQL 11?

4

1 回答 1

0

如果您成功地遵循了该示例,那么您距离将 jsonb 数组扩展为几个简单的 jsonb 仅一步之遥:

CREATE TABLE T (j jsonb);
INSERT INTO T SELECT jsonb_array_elements(j)::jsonb FROM T2
于 2019-02-10T02:33:56.823 回答