擅长:python、mysql、java
<p>这不是一种格式良好的数据格式,因此您必须根据观察结果进行一些黑客攻击。由于国家和城市的名称中都可以有空格,因此简单的拆分是行不通的。但是中间的空间呢?如果至少有两个,你就得到了你所需要的。使用在2个或更多空格上拆分的正则表达式</p>
<pre><code>import re
countries_dict = {}
countries_file = open("countrieslist.txt")
for line in countries_file:
try:
key, value = re.split(" {2,}", line.strip())
except TypeError:
raise ValueError(f"Malformed data must have 2 spaces between names: {line.strip()}")
countries_dict[key] = value
print(countries_dict)
</code></pre>
<p>这可以缩短为</p>
<pre><code>countries_dict = dict(re.split(" {2,}", line.strip())
for line in print(countries_dict)
</code></pre>