它打印单个数字的原因是因为地址是一个字符串。因此,实际上打印的并不是每个数字,而是字符串的每个字母。考虑:
word = "abc"
for letter in word:
print(letter)
# prints:
# a
# b
# c
因此,这意味着您在某个地方将单独的 IP 地址分配给变量,然后迭代该变量(它是一个字符串)。无需您提供更多有关如何获取的代码ip_address
变量,很难说问题出在哪里。
打印 IP 地址的一种方法(假设您将它们保存在字典中):
addresses = {"ip_address": [
"192.168.0.1",
"192.168.0.2",
"192.168.0.3"
]}
for address in addresses["ip_address"]: # this gets you a list of IPs
print(address)
即使您将它们放在其他地方,要获取的关键见解是不要迭代字符串,因为您将获得字符(除非那是您想要的)。
更新以解决编辑问题
由于我没有您正在加载的文件(它是文件吗?),因此我假设我有您发布的确切字符串。这是使用您提供的数据打印每个单独地址的方法。请注意,您的情况可能略有不同,因为我不知道完整的代码。
# the string inside load() emulates your message
data = yaml.load('"ip_address": ["192.168.0.1", "192.168.0.2", "192.168.0.3"]')
ip_addresses = data.get('ip_address')
for address in ip_addresses:
print(address)