etl - Openrefine 与模板配合使用以将 JSON 导出为记录

标签 etl openrefine

最近几天我一直在与 Openrefine 合作,试图找出如何将 Google 数据表导出到 JSON 文件中。

我有以下数据想要导出到 JSON 文件。

id  first name  last name   friends first name  friends last name   family first name   family last name
1   James   Brown   Judy    Garland Mary    Brown
            John    Neverland   Marlene Brown
            Paul    Garland Judy    Brown
2   John    Buller  Amy Garland Francis Buller
            Peter   Flake   John    Buller
            Jules   Peter   Judy    Buller

我期望的 JSON 是:

    {
  "results": [
    {
      "id": 1,
      "firstName": "James",
      "lastName": "Brown",
      "has": {
        "friends": [
          {
            "firstName": "Judy",
            "lastName": "Garland"
          },
          {
            "firstName": "John",
            "lastName": "Neverland"
          },
          {
            "firstName": "Paul",
            "lastName": "Garland"
          }
        ],
        "family": [
          {
            "firstName": "Mary",
            "lastName": "Brown"
          },
          {
            "firstName": "Marlene",
            "lastName": "Brown"
          },
          {
            "firstName": "Judy",
            "lastName": "Brown"
          }
        ]
      }
    },
    {
      "id": 2,
      "firstName": "John",
      "lastName": "Buller",
      "has": {
        "friends": [
          {
            "firstName": "Amy",
            "lastName": "Garland"
          },
          {
            "firstName": "Peter",
            "lastName": "Flake"
          },
          {
            "firstName": "Jules",
            "lastName": "Peter"
          }
        ],
        "family": [
          {
            "firstName": "Francis",
            "lastName": "Buller"
          },
          {
            "firstName": "John",
            "lastName": "Buller"
          },
          {
            "firstName": "Judy",
            "lastName": "Buller"
          }
        ]
      }
    }
  ]
}

到目前为止我已经尝试了几种方法:

1) 使用 excel-to-json 但它仅限于单个嵌套,并且对列名称有一些限制

2) 使用 Openrefine 和模板工具,但我遇到了几个问题: - 虽然它们在 openrefine 中被检测为记录,但您导出的是行而不是记录,因此它将导出 6 行到 JSON,其中 4 行包含空数据 - 如果我尝试填写列,它也会将 6 行导出到 JSON,其中 4 行有重复项,从而失去该人与其家人和 friend 之间的关系

任何帮助将不胜感激,因为我正在尝试导出大约 150,000 条必须采用这种 JSON 格式的此类记录。

最佳答案

OpenRefine 仅支持一层嵌套。您可能需要使用编程语言或 ETL 解决方案来拥有嵌套元素。

关于etl - Openrefine 与模板配合使用以将 JSON 导出为记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31328001/

相关文章:

mysql - 使用 Pentaho Kettle,如何在保持引用完整性的同时从单个表加载多个表?

openrefine - 将可变数量的行转置为 OpenRefine 中的列

openrefine - 仅通过包含空白/空字符串单元格进行过滤

java - 使用 Talend 的 FTP,只获取最新的文件?

Azure 数据工厂管道查询

etl - icCube - 为 ODATA 开发一个 java 插件,如何调试服务器连接?

sparql - 如何在 OpenRefine 中通过 Wikipedia 文章标题进行协调?

sql-server - 变量表达式 vs 表达式任务

wikidata - Openrefine 和 wikidata : how to get values (not reconciliation)

openrefine - JSON 导入后列名称中的下划线和破折号