json - 使用 JSONPATHS 文件到 Redshift 的 JSON 文件 - 无效的 jsonpath 格式
问题描述
尝试使用带有 JSONPATHS 文件的 Copy 将 JSON 文件从 s3 加载到 Redshift。该文件包含 N 条记录。
一次性加载整个集合会引发错误:
无效操作:无效的 JSONPath 格式。支持的符号是 'dot-notation' 和 'bracket-notation'
Json 路径:
{"jsonpaths":
[
"$.item[:].col1",
"$.item[:].col2",
"$.item[:].col3"
]
}
示例文件:
{"item":
[
{
"col1":"A",
"col2":"b",
"col3":"d"
},
{
"col1": "123",
"col2": "red",
"col3": "456"
}
]
}
工作文件:-
{"jsonpaths":
[
"$.item[0].col1",
"$.item[0].col2",
"$.item[0].col3"
]
}
我做错了什么导致这个错误?
解决方案
根据文档,有两种指定 JSONPaths 的方法。一种是使用点符号,另一种是使用括号符号。
在此示例中,用户使用点表示法,但数组已使用冒号 (:) 进行索引。索引 JSON 数组元素的正确方法是使用数字。因此 JSONPath 文件的第二个示例有效。
推荐阅读
- regex - 从字符串中提取 URL
- docker - 拉取巨大的 Docker 镜像
- c# - 关于将类型'int'隐式转换为'char',为什么`s[i] += s[j]`和`s[i] = s[i]+s[j]`不同
- react-native - 在 webview 中完成工作后如何重定向到页面?
- hibernate - 为我的 JPA 实体手动创建 Liquibase DataBaseChangelog
- excel - 根据分配给另一列的值连接由“/”分隔的一列中的值
- c# - SqlBulkCopy - DateTime 错误转换
- r - 如何将特定数据提取到 R 中的值
- delphi - 如何在应用程序中在 F1 上应用键盘挂钩
- android - 带有 RxBinding 的 Observable.zip 不返回结果