【问题标题】:Importing a JSON file into Postgresql 11 on Windows 10在 Windows 10 上将 JSON 文件导入 Postgresql 11
【发布时间】:2019-02-10 01:54:12
【问题描述】:

我有一个 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)加载到它们自己的列中,但我稍后会弄清楚。

我找到了this 示例,但它没有产生我们寻求的结果。整个 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 中?

【问题讨论】:

    标签: json postgresql postgresql-11


    【解决方案1】:

    如果您成功地按照示例进行操作,那么您距离将 jsonb 数组扩展为几个简单的 jsonb 仅一步之遥:

    CREATE TABLE T (j jsonb);
    INSERT INTO T SELECT jsonb_array_elements(j)::jsonb FROM T2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-29
      • 2019-12-02
      • 1970-01-01
      • 2017-07-12
      相关资源
      最近更新 更多