Я пытаюсь преобразовать файл json в формат json -serde, загружая файл json -serde в корзину AWS S3, используя Python, чтобы Amazon Athena (Presto / Hive) мог читать файл в корзине s3.
Согласно AWS документации продукта, типичный файл json не является допустимым форматом; файл json должен быть в формате json -serde: https://docs.aws.amazon.com/athena/latest/ug/json-serde.html
Локально я могу преобразовать файл json в формат json -serde используя приведенный ниже код:
import json
with open('xx_original_file.json','r',encoding='utf-8') as json_file:
data = json.load(json_file)
result = [json.dumps(record) for record in data]
with open('xx_new_file.json', 'w') as obj:
for i in result:
obj.write(i+'\n')
Есть ли эквивалентный способ сделать это в Python, который позволит мне сохранить новый файл json -serde в корзине s3? Я продолжаю получать сообщение об ошибке со сценарием Python, который я создал до сих пор:
import json
import os
import boto3
s3 = boto3.client('s3')
bucket = 'my_bucket_name'
key = 'xx_original_file.json'
response = s3.get_object(Bucket=bucket,Key=key)
content = response['Body']
jsonObject = json.loads(content.read())
result = [json.dumps(record) for record in jsonObject]
new_results = []
for i in result:
new_results.append(i+'\n')
new_key = 'xx_new_file.json'
s3.put_object(Bucket=bucket,Key=new_key,Body=new_results)
Сообщение об ошибке: ParamValidationError: Ошибка проверки параметра: Недопустимый тип параметра Body, значение: {json данные} тип: , допустимые типы: , , файловый объект