Python Boto无法遍历实例
以下代码返回一个空列表:Python Boto无法遍历实例,python,boto,Python,Boto,以下代码返回一个空列表: instancelist = list() instancelist = [x for x in conn.get_all_instances()] for instance in instancelist: print instance.groups 在每种情况下,代码都不会进入for循环,您能否提供有关这是为什么的见解 boto API应该从conn.get_all_实例返回所有保留对象的列表。 我可以从同一个连接对象运行/杀死实例。您可以尝试这样
instancelist = list()
instancelist = [x for x in conn.get_all_instances()]
for instance in instancelist:
print instance.groups
在每种情况下,代码都不会进入for循环,您能否提供有关这是为什么的见解
boto API应该从conn.get_all_实例返回所有保留对象的列表。
我可以从同一个连接对象运行/杀死实例。您可以尝试这样做吗:
>>> import boto
>>> boto.set_stream_logger('foo')
>>> conn = boto.connect_ec2(debug=2)
>>> conn.get_all_instances()
看看你的控制台上打印了什么?这应该能够对EC2服务的请求和响应进行完整的调试日志记录,这样我们就可以确切地知道请求的内容和返回的内容。我是一个明确的Python新手,但我目前使用以下方法迭代所有实例并返回组列表:
import boto
conn = boto.connect_ec2()
all_instances = conn.get_all_instances()
for i in all_instances:
print i
for instance in i.instances:
print instance.groups
我认为您可能遇到的问题是,预订是作为实例集合返回的
正如我所说,我可能错了,但是上面的内容对我来说很有用。你的列表理解是不必要的。只需尝试
instancelist=conn.获取所有实例()
(这可能不会导致错误,但实际上是多余的)可能有。。。只是没有任何实例?你为什么期望会有这样的例子?什么是实例?没错。在调试器中检查列表的内容,并检查连接是否真正建立。也许你在阅读之前要关闭它?实例在那里,我可以创建和销毁它们,连接很好。如何在调试器中查看列表的内容