Чтение из файла txt и запись в словарь пар ключ:значение

Рейтинг: 2Ответов: 1Опубликовано: 21.02.2023

Имеется файл txt, с информацией вида:

[
{
        "country": "Aruba",
        "languages": [
            "Dutch",
            "English",
            "Papiamento",
            "Spanish"
        ]
    },
    {
        "country": "Afghanistan",
        "languages": [
            "Balochi",
            "Dari",
            "Pashto",
            "Turkmenian",
            "Uzbek"
        ]
    }
]

необходимо считать из него в новый словарь страны и языки в виде пар, ключ:значение, чтобы получилось:

{"Aruba": ["Dutch", "English", "Papiamento", "Spanish"]}

испробовал много вариантов, последние мысли резать по строкам и парсить по словам, но с Languages застрял.

f = open('countries.txt', 'r')
file = f.read().splitlines()
context = {}
for line in file:
    if "country" in line:
        key,value = line.split(': ')
        context.update({key:value})
print(context)

Ответы

▲ 5Принят

Формат вашего файла - это в чистом виде JSON.

Используйте библиотеку для работы с JSON, после чего преобразуйте полученный словарь:

import json

with open('countries.txt') as f:
    data = json.load(f)
    new_data = {x['country']: x['languages'] for x in data}
    print(new_data)

Вывод:

{'Aruba': ['Dutch', 'English', 'Papiamento', 'Spanish'], 
 'Afghanistan': ['Balochi', 'Dari', 'Pashto', 'Turkmenian', 'Uzbek']}