Содержимое файла yaml:
a: a1
b:
b1:
- name: c1-name
type:
ctype:
content: true
Я могу безопасно загрузить вышеуказанное содержимое с помощью модуля pyyaml
и изменить данные (добавляемый ключ, значение) следующим образом
with open(filepath, 'r') as f:
data = yaml.safe_load(f)
data['b]['b1'][0]['type']['ctype'][newkey to add]=value
Но я хочу сделать это для некоторых других файлов yaml, где положение для добавления нового ключа отличается от значения, поэтому я решил написать это в функции, отправив filepath, position и key, value в качестве аргументов следующим образом:
def modify_yaml(filepath,position,key,value):
with open(filepath, 'r') as f:
data = yaml.safe_load(f)
data[position][key]=value
return data
Но приведенный выше код не работает. Пожалуйста, помогите, если есть способ достичь этого.
"b": {
"b1": [
{
"name": "c1-name",
"type": {
"ctype": {
"content": true
}
}
}
]
}