【问题标题】:python 3 using for loops and typecastingpython 3 使用 for 循环和类型转换
【发布时间】:2022-07-30 08:38:23
【问题描述】:

如何获得第二个 for 循环完整的 aws ec2 实例 ID?它似乎将其转换为字符串。

我正在使用 Python 3.9。

第一个循环按预期给出输出:

i-0dccf1ede229ce1
i-0285506fee62051

第二个循环给出

i
-
0
d
c
...
INSTANCE_ID = ['i-0dccf1ede229ce1','i-0285506fee62051']
for i in INSTANCE_ID:
  print (i)

对比

for i in INSTANCE_ID:
  for j in i:
    print (j)

实际的boto3脚本如下

#!/usr/bin/env python3

import boto3


AWS_REGION = "us-east-1"
AWS_PROFILE = "xxxx"
session=boto3.session.Session(profile_name=AWS_PROFILE)
EC2_RESOURCE = session.resource('ec2', region_name=AWS_REGION)
INSTANCE_ID = ['i-0dccf1ede229ce1','i-0285506fee62051']

TAGS = [
    {
        'Key': 'STATE',
        'Value': 'LIVE'
    }
]



for instance_id in INSTANCE_ID:
    for ec2_id in     instance_id:
      print (ec2_id) ## here is the issue 
      
      filter = EC2_RESOURCE.instances.filter(InstanceIds={ec2_id})
      filter.create_tags(Tags=TAGS)

【问题讨论】:

  • 它不会将其转换为字符串。它已经 is 是一个字符串。更好的问题是:如果不是字符串,您想要它是什么?它显然不是一个整数(它们都以i 开头,中间有字母)。如果您剥离了i-,那么我想您可以将其解析为base-16 int,但这是您必须竭尽全力去做的事情。没有你的帮助,Python 不会实现这些逻辑上的飞跃。
  • 您的第一个循环已经为您提供了实例 ID。你想要第二个循环做什么?
  • 对不起,如果我无法表达所需的输出,简而言之,第二个循环我希望输出与第一个循环相同,有什么办法可以实现吗?
  • 是的,不使用第二个循环。
  • 我真的不知道还有多少其他的说法。您在字面上链接的代码中有一个for 循环。那里没有说“嵌套循环”。只需一个循环即可遍历数组。

标签: python aws-lambda boto3


【解决方案1】:

谢谢大家。仍然不清楚为什么第二个循环它做了什么。

所以我用 1 个循环修改了代码并且确实有效

@silvio 和大家感谢

#!/usr/bin/env python3
import boto3
AWS_REGION = "us-east-1"
AWS_PROFILE = "xxx"
session=boto3.session.Session(profile_name=AWS_PROFILE)
EC2_RESOURCE = session.resource('ec2', region_name=AWS_REGION)
INSTANCE_ID = ['i-0dccf1ede229ce1','i-0285506fee62051']
TAGS = [
    {
        'Key': 'STATE',
        'Value': 'LIVE'
    }
]

for instance_id in INSTANCE_ID:
  print ( instance_id )
  instances  = EC2_RESOURCE.instances.filter(InstanceIds=[instance_id])
  instances.create_tags(Tags=TAGS)
  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 2016-10-27
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多