Как записать словарные ключи и соответствующие значения для каждой строки в файл - PullRequest
0 голосов
/ 04 ноября 2018
State_Dict = {"Texas": ["San Antonio, Austin, Houston"] ,
    "California": ["San Diego, Los Angeles, San Francisco"],
    "Florida": ["Miami", "Orlando", "Jacksonville"]}

with open("state.txt", "w") as state:
    for key, value in State_Dict:
        state.write(key, value)

Цель: мне нужно записать ключи и значения в текстовый файл в следующем формате:

Texas
San Antonio
Austin
Houston
California
San Diego
Los Angeles
San Francisco
Florida
Miami
Orlando
Jacksonville

Пока я получаю следующую ошибку:

Traceback (most recent call last):
  File "snip/testBed_2.py", line 7, in <module>
    for key, value in State_Dict:
ValueError: too many values to unpack (expected 2)

Process finished with exit code 1

Как мне сделать эту работу?

1 Ответ

0 голосов
/ 04 ноября 2018

Вы можете использовать второй цикл для циклического перебора ваших значений следующим образом. Поскольку ваши значения представляют собой один список с одним элементом, вы получаете названия городов, используя индекс [0], а затем разделяете их, используя , (запятую) в качестве разделителя.

В некоторых ваших списках все города представлены одной строкой, в то время как в некоторых списках есть отдельные названия городов. Следовательно, вы можете использовать оператор if, чтобы проверить это. v.strip() удаляет пустые места из имен.

with open("state.txt", "w") as state:
    for key, value in State_Dict.items():
        state.write(key + '\n')
        if len(value) == 1:
            for v in value[0].split(','):
                state.write(v.strip() + '\n')
        else:
            for v in value:
                state.write(v.strip() + '\n')

выход

Texas
San Antonio
Austin
Houston
California
San Diego
Los Angeles
San Francisco
Florida
Miami
Orlando
Jacksonville
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...