[英]Accessing nested dictionary in Python 3.5
我正在從外部文件導入嵌套字典,並嘗試訪問最深層的值; 但是,當我嘗試使用for
循環時,出現以下錯誤:
print(country['unicode'])
TypeError: string indices must be integers
我正在導入的字典(從emojiFlags.py
文件中)看起來像這樣:
flagSet = {'emojiFlagSet': {'Andorra': {'emoji': '🇦🇩', 'unicode':
'U+1F1E6 U+1F1E9'}, 'Afghanistan': {'emoji': '🇦🇫', 'unicode': 'U+1F1E6
U+1F1EB'}, ... }}
等等等
以下是我正在使用的代碼片段:
from emojiFlags import flagSet
# Get country emoji data
for country in flagSet['emojiFlagSet']:
print(country['unicode'])
我可以肯定地說,我之前在許多其他詞典上都做了這樣的事情(並且沒有問題),我想知道此時我是否還缺少某些明顯的東西。
奇怪的是,如果我print(flagSet)
,我的返回值是emojiFlagSet
(鍵),而不是它的值(字典); 但是,如果我print(flagSet['emojiFlagSet'])
則返回的結果是應嵌套的整個嵌套字典值。 如果我改為嘗試
for country in flagSet['emojiFlagSet']:
print(country)
我得到了所有的國家名稱,但是,就像使用print(flagSet)
語句一樣,我只得到鍵,而不是它們的嵌套字典值。
我的最終目標是簡單地返回每個國家/地區詞典中'unicode'
鍵的值。 所以,我希望看到
U+1F1E6 U+1F1E9
以第一個國家為例。
如果我做的最奇怪
print(flagSet['emojiFlagSet']['Andorra']['unicode'])
作為一個簡單的測試,我得到的正是我想要的。 有什么建議可以解決我在for
循環中出錯的地方嗎?
您正在遍歷字典本身,這將產生該字典的鍵 。 在您的flagSet['emojiFlagSet']
字典中,這些鍵是字符串(例如'Andorra'
和'Afghanistan'
)。
您需要這些值,因為這些值也是字典。 遍歷dict.values()
:
for country in flagSet['emojiFlagSet'].values():
print(country['unicode'])
請注意,您從另一個模塊導入數據結構的事實與所有這些都不相關。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.