首先,我是AWS的新手,因此对于问题很简单或未正确解释我深表歉意。 我正在尝试使用AWS lambda函数读取存储在S3存储桶中的JSON文件。 我的主要问题是我完全无法从中提取信息。 这是我的代码:
**
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)
**
如果我使用解码('utf-8'),则会得到:“ errorMessage”:“'utf-8'编解码器无法解码位置976的字节0xba:无效的起始字节”。 如果没有,我会得到JSON文件,但是像这样:
'{\ r \ n“ id”:0,\ r \ n“ uid”:“ uid”,\ r \ n“ name”:“ User”,\ r \ n“ last”:“候选” }'
我被困在这里,因为.replace无法正常工作,而且我不知道如何像标准JSON一样使用我获取的内容和对其进行访问。
先谢谢您。
更新:看起来主要问题是我在JSON文件中有ASCii字符,例如“á”。现在,我得到这样的内容(我只显示了json的一部分):
'{“ id”:0,“ uid”:“ uid”,“ name”:“ User”,“ last”:“候选”}'
我已经尝试过ast.literal_eval来摆脱''并访问字典,还尝试过json.dumps来避免ASCii字符出现问题,但是没有任何效果。