Я хочу разбить строку на различные части и назначить ее полям в файле YAML.Это мой файл JSON.
{
"App Name": "blah",
"Email": "blah@blah.com",
"Employee ID": "xyz",
"Load Balancing Method": "Round Robin",
"Network": "CMN",
"Pool Member": "pucq-spn-198 5001/tcp\r\npucq-spn-199 5002/tcp\r\npucq-spn-200
5003/tcp",
"Pool Monitor": "tcp",
"Pool name": "pool",
"SSL": "Required",
"VIP Name": "vs-ng"
}
Это пользовательский ввод данных из веб-формы, я получаю к нему доступ через API.Я хочу разделить значения из поля Pool Member
на отдельные строки, например pucq-spn-198
5001
pucq-spn-199
5002
, и назначить их различным полям в файле YAML.Это мой файл YAML.
nodes:
- description: PU
host: 10.10.10.10
monitors:
- /Common/icmp
name: node
- description: PU
host: 10.10.10.10
monitors:
- /Common/icmp
name: node-puex
partition: Common
pool:
descriptions: PUE
lb_method: Round Robin
monitors:
- /Common/tcp
name: pool
pool_members:
- node_name: **pucq-spn-198**
port: **5001**
- node_name: **pucq-spn-199**
port: **5002**
server: gmly-p-01.blah.com
virtual_server:
destination: 1.1.1.1
ip_protocol: udp
name: vs-ng
pool: pool-pu-ind
port: 999
profiles:
- name: fastL4
type: performance-l4
Я хочу поместить значения в -node_name:
и port
в pool_members:
.Пока что я попробовал что-то подобное.Но это не работает.
import json
import requests
import yaml
url = "http://127.0.0.1:5000/vip7.json"
r = requests.get(url)
json_file = json.loads(r.content)
j = json_file
with open('C:/pytest/vs-test.yml', 'r') as f:
y = yaml.load(f)
# Assign JSON values to YAML
y['pool']['lb_method'] = j['Load Balancing Method']
y['pool']['name'] = j['Pool name']
y['virtual_server']['name'] = j['VIP Name']
y['pool_members']['node_name'] = j[0]['Pool Member']
print (y['pool_members']['node_name'])
Ничего не делает.
Также пробовал с разделением.Она распечатывает часть pucq-spn-198
.
pool = j['Pool Member']
p = pool.split()
y['pool_members']['node_name'] = pool[0:12]
print (pool[0:12])
, но когда я назначаю ее таким образом y['pool_members']['node_name'] = pool[0:12]
, она не работает.