2014-10-18 84 views
-1

需要的信息:這是Python 3.4.1無法將列表或字符串轉換爲字典

我遇到問題,試圖弄清楚我從telnet獲得的對象是如何工作的。我用這個代碼:

def EventHandler(sender, event): 
    print("Printing server response: " + str(event.parsed)) #This is the server text 
    print(type(event.parsed)) #I try to check what it's, seems a list 
    TryingToFix = str(event.parsed)[1:-1] #I try to make it a string... 
    dict(TryingToFix) #...just to later try to make it a dict 
    print(TryingToFix) #this never works 

,其結果是:

Printing server response: [{'targetmode': '2', 'invokername': 'Saelyth', 'invokerid': '18472', 'msg': 'test message', 'invokeruid': 'myuniqueid'}] 
<class 'list'> 
ValueError: dictionary update sequence element #0 has length 1; 2 is required 

問題是什麼?
我希望能夠單獨使用響應中的項目。例如,我只想打印invokername或只打印msg。我相信所需的代碼將是event.parsed['msg'],但它給我帶來麻煩,因爲它看起來不是字典。

如何以所需的方式使用列表中的項目?

預期的答案:打印(只有1項信息)

回答

2

您只需在它一個詞典列表對象。您可以通過首先對列表進行索引來訪問詞典,然後查找所包含的詞典:

print event.parsed[0]['msg'] 
+0

......這從未發生過!我不敢相信我以前沒有嘗試過。謝謝你的回答,6分鐘後會接受:P – Saelyth 2014-10-18 17:22:38