我有一个通过网络openstack api创建网络的定义:
def CreateNetwork(self, course_id, network_name, subnets):
data = {'network' : {'name' : utils.NET_NAME % (course_id, network_name),
'admin_state_up' : True}}
netw = self.neutron.create_network(body = data)
net_dict = netw['network']
network_id = net_dict['id']
#Create subnets
subnet_data = {'subnets' : []}
subnet_data['subnets'].append({'cidr' : subnets,
'ip_version' : 4,
'network_id' : network_id})
self.neutron.create_subnet(body = subnet_data)
return network_id
我指定了值:
network = net.CreateNetwork(course_id = course.id, network_name = name, subnets = subnet)
然后我收到错误:
"network = net.CreateNetwork(course_id = course.id, network_name = name, subnets = subnet)
File "/web/lab/*****b/cnetworks.py", line 114, in CreateNetwork
data = {'network' : {'name' : utils.NET_NAME % (course_id, network_name),
TypeError: not all arguments converted during string formatting"
请教我如何解决这个问题。 TKS
答案 0 :(得分:0)
你有%s
需要一个字符串。但是,course.id
看起来是一个整数,在这种情况下你需要%d
。当然,假设PREFIX_NETWORKNAME
包含另一个%s
来格式化网络名称。所以你的字符串格式为..%d...%s
。如果course.id
是整数。如果它不是int而是字符串,则需要..%s...%s..
否则,您无法将这两个值格式化为此字符串。