如何将每行的字典键和对应值写入文件
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
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