TransWikia.com

Как сравнить 2 YAML файла по ключу?

Stack Overflow на русском Asked on November 15, 2021

Файл 1:

    {
      "name": "John",
      "education": {
        "school": true
        "university": false
      },

    }

Файл 2:

    {
      "name": "John",
      "age": 30,
      "isKid": false,
    }

Хочу получить результат, который покажет отличия по ключу. Например:

Файл1 не содержит ключи, присутсвующий в файле2: .age, .isKid

Файл2 не содержит ключи, присутсвующий в файле1: .education, .education.school, .education.university

Как это можно реализовать на пайтоне? Или может есть какие нибудь готовые инструменты(jq например?)?

One Answer

Загрузить yaml в словарь и сделать пару операций с набором ключей через set

import yaml

a = yaml.load('''{
      "name": "John",
      "education": {
        "school": true,
        "university": false
      },
    }''')
    
b = yaml.load('''{
      "name": "John",
      "age": 30,
      "isKid": false,
    }''')
    
    
allkeys = set(a.keys()) | set(b.keys())

auniqkeys = set(a.keys()) - set(b.keys())
buniqkeys = set(b.keys()) - set(a.keys())

Вложенные ключи надо проверять рекурсивно

Answered by eri on November 15, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP