Прежде всего, я новичок в AWS, поэтому прошу прощения, если вопрос очень простой или не объяснен должным образом.
Я пытаюсь прочитать файл JSON, хранящийся в корзине S3 с лямбда-функцией AWS.
Моя главная проблема в том, что я совершенно не могу извлечь из нее информацию.
Это мой код:
**
import json
import boto3
def lambda_handler(event, context):
BUCKET = 'BUCKET'
KEY = 'KEY.json'
client = boto3.client('s3')
result = client.get_object(Bucket=BUCKET, Key=KEY)
# Read the object
text = result['Body'].read()#.decode('utf-8')
#convert to string
text_str = str(text)
text_str = text_str.replace('\r\n', '')
print(text_str)
**
Если я использую decode ('utf-8'), я получаю: "errorMessage": "Кодек utf-8 не может декодировать байт 0xba в позиции 976: недопустимый начальный байт".
Если я не получаю, я получаю файл JSON, но вот так:
'{\ r \ n "id": 0, \ r \ n "uid": "uid", \ r \ n "name": "Пользователь", \ r \ n "last": "Кандидат" } '
Я застрял здесь, потому что .replace не работает, и я не знаю, как использовать то, что я получаю, и доступ к нему, как в стандартном JSON.
Спасибо заранее.
Обновление: похоже, основная проблема в том, что в файле JSON есть символы ASCii, например 'á'. Теперь я получаю что-то вроде этого (я просто показываю часть JSON):
'{"id": 0, "uid": "uid", "name": "User", "last": "Candidate"}'
Я пытался ast.literal_eval избавиться от '' и получить доступ к словарю, а также json.dumps, чтобы попытаться избежать проблемы с символами ASCii, но ничего не помогло.