我正在使用以下版本的 terraform:
root@sflowc01:~/terraform_proj# terraform version
Terraform v0.14.2
+ provider registry.terraform.io/dmacvicar/libvirt v0.6.2
+ provider registry.terraform.io/hashicorp/template v2.2.0
Run Code Online (Sandbox Code Playgroud)
在我的模块中(./modules/singlevm/main.tf),我将输出定义为:
output "ips" {
value = libvirt_domain.db1.network_interface.0.addresses
}
Run Code Online (Sandbox Code Playgroud)
当我在独立模式下运行此模块时,我得到列表形式的输出,如下所示:(这是预期的)
ips = tolist([
"192.168.122.167",
])
Run Code Online (Sandbox Code Playgroud)
我的 tfvars 定义为:
myvms = {
vm1 = {
hostname = "centos01"
osdisk_gb = 20
CPU_Count = 4
RAM = 256
Image = "CentOS-7-x86_64-GenericCloud.qcow2"
}
vm2 = {
hostname = "ubuntu01"
osdisk_gb = 40
CPU_Count = 8
RAM = 512
Image = "ubuntu-16.04-server-cloudimg-amd64-disk1.img"
}
}
Run Code Online (Sandbox Code Playgroud)
在我的根模块中,我使用for_each创建多个虚拟机,并且尝试从根模块捕获相同的输出(./main.tf) …
我在向数据集添加新行时遇到问题。
这是示例DataFrame。
column_names = ['A','B','C']
items = [['a1','b1','c1'],['a2','b2']]
newDF = pd.DataFrame(items,columns=column_names)
print(newDF)
Run Code Online (Sandbox Code Playgroud)
输出:
A B C
0 a1 b1 c1
1 a2 b2 None
Run Code Online (Sandbox Code Playgroud)
由于缺少 c2,它被替换为None. 这很好,正如预期的那样。
现在,如果我继续向现有的添加类似的行DataFrame,如下所示:
newDF.loc[len(newDF)] = ['a3','b3']
Run Code Online (Sandbox Code Playgroud)
我收到错误“无法设置列不匹配的行”。
我如何添加这个额外的行,以便它会自动处理丢失的 c3 withNone或 NaN?
我试图用","分割字符串.'split'函数可以正常运行以下'example1'.
example1 = "1,'aaa',337.5,17195,.02,0,0,'yes','abc'"
example1.split(",")
Result: ['1', "'aaa'", '337.5', '17195', '.02', '0', '0', "'yes'", "'abc'"]
Run Code Online (Sandbox Code Playgroud)
但是,在这里我有一个场景,单引号中有逗号,我不想分开.
example2 = "1,'aaa',337.5,17195,.02,0,0,'yes','abc, def, xyz'"
example2.split(",")
Result: ["1,'aaa',337.5,17195,.02,0,0,'yes','abc,", 'def,', "xyz'"]
Run Code Online (Sandbox Code Playgroud)
但我试图得到这个结果:
['1', "'aaa'", '337.5', '17195', '.02', '0', '0', "'yes'", "'abc, def, xyz'"]
Run Code Online (Sandbox Code Playgroud)
如何通过字符串拆分功能实现此目的?