gpt4 book ai didi

json - TypeError : is not JSON serializable

转载 作者:行者123 更新时间:2023-12-05 07:28:02 24 4
gpt4 key购买 nike

我正在尝试使用 Python 创建一个 AWS Lambda 函数,该函数将从某些 API 接收文本并返回包含 AudioStream 对象的 JSON。为此,我使用 AWS Polly。目前,我可以在我的机器上从 AWS 获取 AudioStream,它工作正常。

为了使用 AWS Polly,我创建了一个特殊用户并授予他 AmazonPollyReadOnlyAccessAmazonPollyFullAccess 访问权限。

import boto3,json

polly= boto3.client('polly')
text='<speak>hey there wassup </speak>'

spoken_text=polly.synthesize_speech(Text=text,OutputFormat='mp3',VoiceId='Aditi',TextType='ssml')

newdata=json.dumps(spoken_text)
# return newdata
print(type(spoken_text))

但是当我尝试使用此代码片段以 JSON 格式返回响应时,我收到了错误。

/usr/bin/python3.5 /talker/aditi.py
Traceback (most recent call last):
File "/talker/aditi.py", line 9, in <module>
newdata=json.dumps(spoken_text)
File "/usr/lib/python3.5/json/__init__.py", line 230, in dumps
return _default_encoder.encode(obj)
File "/usr/lib/python3.5/json/encoder.py", line 198, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/lib/python3.5/json/encoder.py", line 256, in iterencode
return _iterencode(o, 0)
File "/usr/lib/python3.5/json/encoder.py", line 179, in default
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: <botocore.response.StreamingBody object at 0x7f81898af438> is not JSON serializable

Process finished with exit code 1

如何正确执行此操作?

最佳答案

在转储或返回之前首先解析来自客户端的响应。

例如:

response = spoken_text['Body'].read().decode('utf-8')
return response

关于json - TypeError : <botocore. response.StreamingBody object at 0x7f81898af438> is not JSON serializable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53619587/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com