Я пытаюсь прочитать текстовый файл и превратить его в список словарей Python

#arrays #dictionary #append

Вопрос:

то, как мне нужно прочитать в файле:

 countries = [
{
    "name": "Venezuela",
    "capital": "Caracas"
}, {
    "name": "Bolivia",
    "capital": "Sucre"
}, {
    "name": "Argentina",
    "capital": "Buenos Aires"
}, {
    "name": "Chile",
    "capital": "Santiago"
}, {
    "name": "Colombia",
    "capital": "Bogota"
}, {
    "name": "Guyana",
    "capital": "Georgetown"
}, {
    "name": "French Guiana",
    "capital": "Cayenne"
}, {
    "name": "Paraguay",
    "capital": "Asuncion"
}, {
    "name": "Peru",
    "capital": "Lima"
}, {
    "name": "Ecuador",
    "capital": "Quito"
}, {
    "name": "Suriname",
    "capital": "Paramibo"
}, {
    "name": "Uruguay",
    "capital": "Montevideo"
}, {
    "name": "Brazil",
    "capital": "Brasilia"
}]
 

как настраивается текстовый файл:

 Venezuela,Caracas
Bolivia,Sucre
Argentina,Buenos Aires
Chile,Santiago
Colombia,Bogota
Guyana,Georgetown
French Guiana,Cayenne
Paraguay,Asuncion
Peru,Lima
Ecuador,Quito
Suriname,Paramibo
Uruguay,Montevideo
Brazil,Brasilia
 

текстовый файл:

текстовый файл

текущий код, который работает без чтения в файле

текущий код, который работает без чтения в файле

Ответ №1:

Чтобы прочитать файл и создать словарь, вы можете использовать следующий пример:

 countries = []
with open("SAcapitals.txt", "r") as f_in:
    for line in map(str.strip, f_in):
        # skip empty lines:
        if not line:
            continue
        name, capital = line.split(",")
        countries.append(dict(name=name, capital=capital))

print(countries)
 

С принтами:

 [
    {"name": "Venezuela", "capital": "Caracas"},
    {"name": "Bolivia", "capital": "Sucre"},
    {"name": "Argentina", "capital": "Buenos Aires"},
    {"name": "Chile", "capital": "Santiago"},
    {"name": "Colombia", "capital": "Bogota"},
    {"name": "Guyana", "capital": "Georgetown"},
    {"name": "French Guiana", "capital": "Cayenne"},
    {"name": "Paraguay", "capital": "Asuncion"},
    {"name": "Peru", "capital": "Lima"},
    {"name": "Ecuador", "capital": "Quito"},
    {"name": "Suriname", "capital": "Paramibo"},
    {"name": "Uruguay", "capital": "Montevideo"},
    {"name": "Brazil", "capital": "Brasilia"},
]
 

Комментарии:

1. это идеально. Я пробовал делать это многими другими способами. Большое вам спасибо!