While 使用用户输入循环下面的代码
While loop for code below with user input
想要一段代码,我在其中请求队列名称,然后使用提供的名称创建新的 sqs 队列。如果队列名称已经存在,则希望循环提示新名称
import boto3
sqs = boto3.resource('sqs')
all_queues = sqs.queues.all()
while True:
sqs_queue_name = input("Enter queue name: ")
for queue in all_queues:
if queue.attributes['QueueArn'].split(":")[-1] == sqs_queue_name:
print(f"Queue {sqs_queue_name} already exists")
continue
else:
queue = sqs.create_queue(QueueName=sqs_queue_name, Attributes={'DelaySeconds':'5'})
print(queue.url)
print(queue.attributes.get('DelaySeconds'))
我做错了什么?代码一直要求我输入队列名称,所以 while 循环有问题,看不出有什么问题...
假设调用 all_queues = sqs.queues.all() returns 一个列表,
我会打破 while True: 建立新队列的循环。
我还会消除内部 for 循环。相反,我会制作一个队列名称列表,然后检查队列名称 I select 是否在该列表中。如果是,我需要不断询问用户新的队列名称。如果不是,则创建新队列并跳出循环。
像这样:
import boto3
sqs = boto3.resource('sqs')
all_queues = sqs.queues.all()
queue_names = [x.attributes['QueueArn'].split(":")[-1] for x in all_queues]
while True:
sqs_queue_name = input("Enter queue name: ")
if sqs_queue_name in queue_names:
print(f"Queue {sqs_queue_name} already exists")
continue
else:
queue = sqs.create_queue(QueueName=sqs_queue_name, Attributes= {'DelaySeconds':'5'})
print(queue.url)
print(queue.attributes.get('DelaySeconds'))
break
想要一段代码,我在其中请求队列名称,然后使用提供的名称创建新的 sqs 队列。如果队列名称已经存在,则希望循环提示新名称
import boto3
sqs = boto3.resource('sqs')
all_queues = sqs.queues.all()
while True:
sqs_queue_name = input("Enter queue name: ")
for queue in all_queues:
if queue.attributes['QueueArn'].split(":")[-1] == sqs_queue_name:
print(f"Queue {sqs_queue_name} already exists")
continue
else:
queue = sqs.create_queue(QueueName=sqs_queue_name, Attributes={'DelaySeconds':'5'})
print(queue.url)
print(queue.attributes.get('DelaySeconds'))
我做错了什么?代码一直要求我输入队列名称,所以 while 循环有问题,看不出有什么问题...
假设调用 all_queues = sqs.queues.all() returns 一个列表,
我会打破 while True: 建立新队列的循环。
我还会消除内部 for 循环。相反,我会制作一个队列名称列表,然后检查队列名称 I select 是否在该列表中。如果是,我需要不断询问用户新的队列名称。如果不是,则创建新队列并跳出循环。
像这样:
import boto3
sqs = boto3.resource('sqs')
all_queues = sqs.queues.all()
queue_names = [x.attributes['QueueArn'].split(":")[-1] for x in all_queues]
while True:
sqs_queue_name = input("Enter queue name: ")
if sqs_queue_name in queue_names:
print(f"Queue {sqs_queue_name} already exists")
continue
else:
queue = sqs.create_queue(QueueName=sqs_queue_name, Attributes= {'DelaySeconds':'5'})
print(queue.url)
print(queue.attributes.get('DelaySeconds'))
break