<p>您可以使用<code>pandas</code>和<code>groupby</code></p>
<p>我使用<code>io</code>只是为了创建最小的工作示例,但您应该使用filename</p>
<pre><code>text = '''Kabul Afghanistan
Kandahar Afghanistan
Herat Afghanistan
Tirana Albania
Algiers Algeria
Luanda Angola
Huambo Angola
Cabinda Angola
Benguela Angola
Lobito Angola
Buenos Aires Argentina
Cordoba Argentina
Rosario Argentina
San Miguel de Tucuman Argentina'''
import pandas as pd
import io
#fh = "filename.csv"
#df = pd.read_csv(fh, sep='\s{2,}', names=['city', 'country'])
fh = io.StringIO(text)
df = pd.read_csv(fh, sep='\s{2,}', names=['city', 'country'])
cities = {}
for country, group in df.groupby('country'):
cities[country] = group['city'].to_list()
print(cities)
</code></pre>
<p>没有<code>pandas</code>,但使用正常的<code>open()</code>和<code>read()</code></p>
<p>因为名称之间用很少的空格分隔,所以我使用<code>regex</code>。我无法使用标准模块<code>csv</code>,因为它需要单个字符作为分隔符</p>
<pre><code>text = '''Kabul Afghanistan
Kandahar Afghanistan
Herat Afghanistan
Tirana Albania
Algiers Algeria
Luanda Angola
Huambo Angola
Cabinda Angola
Benguela Angola
Lobito Angola
Buenos Aires Argentina
Cordoba Argentina
Rosario Argentina
San Miguel de Tucuman Argentina'''
import re
import io
#fh = open('filename.csv')
fh = io.StringIO(text)
cities = {}
for line in fh:
line = line.strip()
city, country = re.split(' {2,}', line)
if country not in cities:
cities[country] = []
cities[country].append(city)
print(cities)
</code></pre>
<hr/>
<p><strong>编辑:</strong></p>
<p>如果您需要它作为JSON数据</p>
<pre><code>import json
data = json.dumps(cities)
</code></pre>