gpt4 book ai didi

python - 将 python BOTO 与 AWS SQS 一起使用,找回无意义的字符

转载 作者:太空狗 更新时间:2023-10-30 02:32:02 25 4
gpt4 key购买 nike

因此,我正在使用 python 和 BOTO 访问我的 AWS SQS。我在 SQS 中有一些消息,我可以从 AWS 仪表板看到这些消息。但是,当我尝试通过 python 获取这些消息时,通过的字符只是乱码。知道这里发生了什么吗?

conn = boto.sqs.connect_to_region("us-east-1") 
q = conn.get_queue('my-worker-queue')
print q
#read from message queue
message = q.read(60)
print message
print message.get_body()

根据上面的代码,我得到以下内容:

Queue(https://queue.amazonaws.com/247124526695/my-worker-queue)
<boto.sqs.message.Message instance at 0x16f31b8>
??e??b?+??-

消息队列中的文本如下:

hello this is a test

最佳答案

我猜原因是 base64 解码问题,因为 boto 使用 base64 进行消息编码和解码。你可以尝试使用get_body_encoded method :

print message.get_body_encoded()

其他选项是转换为RawMessage :

from boto.sqs.message import RawMessage
q.set_message_class(RawMessage)

更新

是的,你的测试用例很清楚:

>>> print 'hello this is a test'.decode('base64')
??e??b?+??-

关于python - 将 python BOTO 与 AWS SQS 一起使用,找回无意义的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20551216/

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