【发布时间】:2019-05-20 19:52:00
【问题描述】:
(这个问题和Store multiple elements in json files in AWS Athena很像)
我在 S3 存储桶中有一个 JSON 文件,其结构如下 -
[{"key1": value, "key2": value, "key3": {"key4": value, etc}}, {"key1": value....}]
两个问题:
为什么如果我将它直接发送到 Quicksight,Quicksight 知道完美地规范化文件(除非存储桶中有多个文件不匹配(这就是我尝试 Athena 的原因))但雅典娜与之抗争?我知道它与格式有关(每个字典不在自己的行上,它是字典列表而不仅仅是字典等),但如果 AWS 上有其他服务,则似乎没有必要修改原始文件知道如何毫无问题地解析和展平它。
我在 Lambda 中使用 Python 脚本来调用 API,字典列表就是它的格式。有没有一种简单的方法可以按照 Athena 喜欢的方式格式化 JSON 文件?以下是我当前脚本的示例 -
response = requests.request(method, url, **kwargs)
data_dict = response.json()
data_json = json.dumps(data_dict['results'])
s3.Bucket('bucket_name').put_object(Key = key, Body = data_json)
免责声明:总的来说,我对 AWS/编码相当陌生,并且在尝试理解 AWS 文档时遇到了许多挑战,所以如果这是一个简单的解决方法,我深表歉意。
【问题讨论】:
标签: amazon-web-services amazon-s3 aws-glue amazon-athena amazon-quicksight