如何将每行的字典键和对应值写入文件

How to write dictionary keys and corresponding values to each line to a file

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

我该如何进行这项工作?

您可以使用第二个循环来遍历您的值,如下所示。由于您的值是具有单个元素的单个列表,因此您使用 [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