Я работаю над проектом Python (3.6), в котором мне нужно добавить целочисленное значение в многострочную строку.
Вот мой код:
for var in list(range(1, no_of_svc + 1)):
svar = str(var)
print(type(svar))
port = type(data['configuration']['svc' + svar]['port']['port'])
print(port)
port = str(data['configuration']['svc' + svar]['port']['port'])
deployments = deployment + '''\n
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: ''' + data['deployment_name'] + '''-''' + data['configuration']['svc' + str(var)]['name'] + '''
labels:
#Project ID
app: ''' + data['configuration']['svc' + str(var)]['name'] + '''
spec:
#Run two instances of our application
replicas: ''' + data['configuration']['svc' + str(var)]['replicas'] + '''
template:
metadata:
labels:
app: ''' + data['configuration']['svc' + str(var)]['name'] + '''
spec:
#Container details
containers:
- name: ''' + data['configuration']['svc' + str(var)]['versions']['v1']['name'] + '''
image: ''' + data['configuration']['svc' + str(var)]['versions']['v1']['image'] + '''
imagePullPolicy: Always
#Ports to expose
ports:
- containerPort: ''' + port + '''
'''
Как вы можете видеть в приведенном выше коде, я преобразовал port
в строку, и даже выходные данные print(type(svar))
и print(port)
равны <class 'str'>
, но все же он не работает.
Вот сообщение об ошибке:
- containerPort: ''' + port + '''
TypeError: must be str, not int
Я перевернул его с помощью метода format
, и он работает:
no_of_svc = int(data['configuration']['no_of_svc'])
deployment = ''
deployments = ''''''
for var in list(range(1, no_of_svc + 1)):
deployments = deployment + '''\n
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: {}
labels:
#Project ID
app: {}
spec:
#Run two instances of our application
replicas: {}
template:
metadata:
labels:
app: {}
spec:
#Container details
containers:
- name: {}
image: {}
imagePullPolicy: Always
#Ports to expose
ports:
- containerPort: {}
'''.format(data['deployment_name'] + '-' + data['configuration']['svc' + str(var)]['name'],
data['configuration']['svc' + str(var)]['name'],
data['configuration']['svc' + str(var)]['replicas'],
data['configuration']['svc' + str(var)]['name'],
data['configuration']['svc' + str(var)]['versions']['v1']['name'],
data['configuration']['svc' + str(var)]['versions']['v1']['image'],
data['configuration']['svc' + str(var)]['port']['port'])
print(deployments)
Что может быть не так?