продолжайте получать сообщение об ошибке при попытке прочитать JSON с S3 - PullRequest
0 голосов
/ 04 ноября 2019

Я получаю эту ошибку в своей лямбда-функции:

{"errorMessage": "module initialization error"}

Это происходит, когда я пытаюсь превратить следующую строку, содержащую данные json, в объект словаря json внутри python.

"{\n\"main\": {\n  \"PART_NAME\": \"Genuine Cardboard Honda Wing\",\n  \"BRAND\": \"Honda\",\n  \"MJR_CAT\": \"Aero\",\n  \"CAT\": \"Rear Wing\",\n  \"SUB_CAT\": \"NA\",\n  \"Power_Increase\": \"0\"\n},\n\"forza\":\n{\n  \"power\": \"[0, True]\",\n  \"Torque\": \"[0, True]\",\n  \"Traction\": \"[50, True]\",\n  \"Handling\": \"[100, True]\",\n  \"Breaking\": \"[40, True]\"\n},\n\"custom\": {\n\"length\": 120,\n\"car max height[m]\": 2,\n\"RICER RANK\": -10\n\n}\n"

Вот мой код, чтобы повторить эту ошибку:

client = boto3.client('s3')
result = client.get_object(Bucket=BUCKET, Key=FILE_TO_READ) 
text = result['Body'].read().decode('utf-8')
text = json.load(text)
print(text) 

без print(text), он производит эту строку выше.

Спасибо:)

Вот полная лямбда-функция (хотя и не прокомментированная), если вам интересно.

import json
import boto3
print('got this far')
BUCKET = '******'
FILE_TO_READ = 'example_honda_wing.json'
client = boto3.client('s3')
result = client.get_object(Bucket=BUCKET, Key=FILE_TO_READ) 
text = result['Body'].read().decode('utf-8')
#text = str(text).replace("\n","")
#text = text.replace('\"',' ')

#text = json.load(text)
print(text) # Use your desired JSON Key for your value 

def lambda_handler(event, context):
    # TODO implement
    return text
...