9

CSV インポート後、別の言語のキーを持つ次の辞書があります。

dic = {'voornaam': 'John', 'Achternaam': 'Davis', 'telephone': '123456', 'Mobielnummer': '234567'}

ここで、キーを英語と(すべて小文字にも)変更したいと思います。次のようになります。

dic = {'first_name':  'John', 'last_name': 'Davis', 'phone': '123456', 'mobile': '234567'}

どうすればこれを達成できますか?

4

3 に答える 3

24

あなたは辞書型を持っています、それは完全に適合します

>>> dic = {'voornaam': 'John', 'Achternaam': 'Davis', 'telephone': '123456', 'Mobielnummer': '234567'}
>>> tr = {'voornaam':'first_name', 'Achternaam':'last_name', 'telephone':'phone', 'Mobielnummer':'mobile'}
>>> dic = {tr[k]: v for k, v in dic.items()}
{'mobile': '234567', 'phone': '123456', 'first_name': 'John', 'last_name': 'Davis'}
于 2013-07-29T20:08:22.310 に答える
1
name_mapping = {
    'voornaam': 'first_name',
    ...
}

dic = your_dict

# Can't iterate over collection being modified,
# so change the iterable being iterated.
for old, new in name_mapping.iteritems():
    value = dic.get(old, None)
    if value is None:
        continue

    dic[new] = value
    del dic[old]
于 2013-07-29T20:08:00.630 に答える