Python 从文本文件读取并发送到aws sqs Fifo队列

Python 从文本文件读取并发送到aws sqs Fifo队列,python,amazon-web-services,amazon-sqs,Python,Amazon Web Services,Amazon Sqs,我这里有个小问题。我想使用python读取文本文件并创建队列,然后将这些行从文本文件发送到AmazonWebServicesSQS(简单队列服务)。首先,我实际上已经用boto实现了这一点,但问题是这些行不是按顺序排列的,只是随机排列的,比如第4行、第1行、第5行等等。。 这是我的密码: import boto.sqs conn = boto.sqs.connect_to_region("us-east-2", aws_acc

我这里有个小问题。我想使用python读取文本文件并创建队列,然后将这些行从文本文件发送到AmazonWebServicesSQS(简单队列服务)。首先,我实际上已经用boto实现了这一点,但问题是这些行不是按顺序排列的,只是随机排列的,比如第4行、第1行、第5行等等。。 这是我的密码:

import boto.sqs

conn = boto.sqs.connect_to_region("us-east-2",
                                  aws_access_key_id='AKIAIJIQZG5TR3NMW3LQ',
                                  aws_secret_access_key='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')

q = conn.create_queue('test')
with open('read.txt', 'r') as read_file:
    from boto.sqs.message import RawMessage
    for line in read_file:
        m = RawMessage()
        m.set_body(line)
        q.write(m)
那么,该怎么办?好的,我们需要创建一个FIFO队列(我也在python中使用boto3实现了这一点),但现在的问题是我在读取文本文件时遇到了问题。。以下是我用来在SQS中创建FIFO队列的代码:

import boto3

AWS_ACCESS_KEY = 'AKIAIJIQZG5TR3NMW3LQ'
AWS_SECRET_ACCESS_KEY = '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'
sqs_client = boto3.resource(
    'sqs',
    aws_access_key_id=AWS_ACCESS_KEY,
    aws_secret_access_key=AWS_SECRET_ACCESS_KEY,
    region_name='us-east-2'
)

queue_name = ('demo_queue.fifo')

response = sqs_client.create_queue(
    QueueName=queue_name,
    Attributes={
        'FifoQueue': 'true',
        'ContentBasedDeduplication': 'true'
    }
)
with open('read.txt', 'r') as read_file:
    from boto.sqs.message import RawMessage
    for line in read_file:
        m = RawMessage()
        m.set_body(line)
        queue_name.write(m)
有人知道怎么解决这个问题吗?谢谢。

尝试更换

队列名称。写入(m)
具有

响应。写入(m)
在您的第一段代码中。您应该使用
get\u queue\u by\u name
另外,在boto3中仅指定MessageBody和MessageGroupID时,请确保为队列启用了基于内容的重复数据消除,或指定MessageDeduplicationId字符串,否则将失败

请尝试替换

队列名称。写入(m)
具有

响应。写入(m)
在您的第一段代码中。您应该使用
get\u queue\u by\u name

另外,在boto3中仅指定MessageBody和MessageGroupID时,请确保为队列启用了基于内容的重复数据消除,或者指定MessageDeduplicationId字符串,否则它将失败

您会遇到什么错误?我会收到错误消息:AttributeError:'str'对象没有属性'write'队列\u name,在您的情况下,是一个字符串
queue\u name=('demo\u queue.fifo')
,您可能想使用其他对象。出现了什么错误?我收到了错误消息:AttributeError:'str'对象没有属性'write'queue\u name,在您的情况下,是一个字符串
queue\u name=('demo\u queue.fifo')
,您可能想使用其他对象。我尝试过,但现在收到错误消息:AttributeError:'sqs.Queue'对象没有属性'write',我尝试过,但现在收到错误消息:AttributeError:'sqs.Queue'对象没有属性'write'