Чтение из файла txt и запись в словарь пар ключ:значение
Имеется файл 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)
Ответы (1 шт):
Автор решения: Павел
→ Ссылка
Формат вашего файла - это в чистом виде 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']}