2014-01-28 60 views
8

我正在嘗試構建/更新字典。我有暱稱作爲temp_dict中的鍵並尋找要添加的ID。「TypeError:'unicode'對象不支持項目分配」在字典

摘錄表單我的代碼。我認爲你看到我的錯誤就足夠了。

d1 = {u'status': u'ok', u'count': 1, u'data': [{u'nickname': u'45sss', u'account_id': 553472}]} 


    temp_dict = {} 
    for key, value in d1.iteritems(): 
     if "data" == key: 
      for dic2 in value: 
        x = dic2['nickname'] 
        y = dic2['account_id'] 
        temp_dict[x] = y; 

我的錯誤:

Traceback (most recent call last): 
File "untitled.py", line 36, in <module> 
get_PlayerIds_Names_WowpApi_TJ_() #Easy going. Some issues with case letters. 
File "g:\Desktop\Programming\WOWP API\functions.py", line 44, in get_PlayerIds_Names_WowpApi_TJ_ 
check_missing_player_ids(basket) 
File "g:\Desktop\Programming\WOWP API\functions.py", line 195, in check_missing_player_ids 
temp_dict[x] = y; 
TypeError: 'unicode' object does not support item assignment 

有關於同樣的錯誤多個SO條目。但是沒有連接到這種字典操作。

+2

全部回溯請... – mhlester

+1

需要看到D1。 –

+1

看起來'temp_dict'不是一個字典,而是一個unicode字符串。在functions.py的第195行之前,你有一個不正確的賦值。 –

回答

8

最有可能你已經把unicode字符串在temp_dict地方:

>>> temp_dict = u'' 
>>> dic2 = {u'nickname': u'45sss', u'account_id': 553472} 
>>> x = dic2['nickname'] 
>>> y = dic2['account_id'] 
>>> temp_dict[x] = y 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: 'unicode' object does not support item assignment 

初始化它與空字典和所有將工作:

>>> temp_dict = {} 
>>> temp_dict[x] = y 
>>> temp_dict 
{u'45sss': 553472} 
+0

是的,謝謝。我有一個循環,獲取列表項並創建字典條目。那裏有一個錯誤。 – Aidis

相關問題